A partir de su dormitorio usted puede controlar la videocasete que está en la sala o en otra parte de su casa y que envía la señal al televisor que usted está viendo. Todo esto se puede hacer con el circuito que describimos en este artículo.

Nota: el artículo es de 2007. Después de esa fecha algunos controles remotos pasaron a operar con velocidades de transmisión mayor. Así puede ocurrir que, con algunos de estos aparatos, esta extensión no funcione. El uso de un funcionamiento más rápido puede ser tentado.

   Una práctica común en muchas residencias y apartamentos es tener la videocasete o DVD en la sala junto a un televisor principal y enviar su señal a un televisor remoto, ubicado en el dormitorio o incluso en la cocina. La desventaja de esta configuración es que del dormitorio o cocina no se tiene acceso por el control remoto al DVD o videocasete que está en la sala. Con el circuito que describimos en este artículo, este problema es contornado, como muestra la figura 1.

 

Figura 1
Figura 1

 

   

El circuito recibe la señal del control remoto original del aparato y lo repite a través de un enlace óptico para el aparato que debe controlarse. Alimentado por una batería de 9 V o por fuente de 12 V, el circuito es muy sencillo de montar y utiliza componentes comunes.

 

 

Cómo funciona el control remoto

 

   Para entender cómo funciona nuestro circuito analizador será interesante saber antes cómo funciona el propio control remoto, no entrando en detalles sobre el sistema de modulación, sino sólo sobre el tipo de señal que emite. Como se muestra en la figura 2, un control remoto de infrarrojos común tiene uno o más LEDs infrarrojos que son modulados por un circuito procesador, el cual envía el mensaje al receptor con un foto-sensor (un fotodiodo o un fototransistor). Los controles remotos de la mayoría de los aparatos comunes como televisores, aparatos de sonido, DVD, etc operan con una señal modulada en las frecuencias entre 36 y 38 kHz.

 

Figura 2
Figura 2

 

   

La modulación de las señales consiste en pulsos en una tasa de 100 a 200 bps (pulsos por segundo) enviados al receptor en formato serial, como muestra la figura 3.

 

33Figura 3

    

Estas señales pueden ser captadas por un fotodiodo, amplificados y transmitidos de nuevo por un LED infrarrojo. Es justamente lo que hacemos con nuestro circuito.

 

 

Como funciona

 

   Los impulsos infrarrojos modulados del control remoto son captados por un fotodiodo y aplicados de modo diferencial en un amplificador operacional de alta ganancia, del tipo CA3140.

   Este amplificador posee transistores de efecto de campo en la entrada (JFET) y tiene una ganancia extremadamente alta, que es determinada por el resistor de realimentación R1. La impedancia de este amplificador también es altísima, lo que le dota de excelente sensibilidad para esta aplicación. La señal amplificada se lleva a un transistor controlador de media potencia del tipo BC337, que excita dos LED.

   Un LED es visible y servirá como monitor, ya que parpadeará cuando el aparato reciba una señal de control y retransmitirá. Este LED parpadeará en una frecuencia entre algunos hertzios y algunas decenas de hertzios cuando se recibe la señal de comando, lo que será fácilmente perceptible por nuestros ojos.

   El otro LED es el infrarrojo, de mayor potencia, que deberá apuntar al aparato a ser controlado.

   

 

Montaje

 

   En la figura 4 tenemos el diagrama completo del repetidor de control remoto. La placa de circuito impreso para su montaje se ve en la figura 5. El fotodiodo debe apuntar al lugar donde está el control remoto y el LED infrarrojo para el equipo que será controlado.

 

Figura 4
Figura 4

 

 

 

Figura 5
Figura 5

 

   

En una disposición típica en la que sólo se debe rodear una pared, los dos pueden quedar en la misma caja, vea la figura 6. Sin embargo, si es necesario un recorrido más largo para el enlace, será conveniente alejar el LED de la caja y no el sensor que , por ser un dispositivo de alta impedancia, está más sujeto a la captación de zumbidos y ruidos.

 

 

Figura 6
Figura 6

 

   

Lo que se hace en este caso, usando un cable de hasta 10 m de longitud para conectar el LED infrarrojo de modo que quede cerca del aparato que va a ser controlado. El fotodiodo puede ser de cualquier tipo, como el TIL100, o incluso un fototransistor común puede ser experimentado.

   En el montaje hay que tener mucho cuidado con la polaridad de estos componentes. Si hay alguna inversión, el circuito no funcionará. El conjunto se puede instalar en una pequeña caja plástica que se fijará en un lugar apropiado. Prueba y uso Simplemente apunte el LED emisor para el equipo a ser controlado y el fotodiodo al lugar en que será colocado el mando a distancia, y experimentar el circuito. Ningún ajuste es necesario.

Si nota falta de sensibilidad, monte el emisor o el receptor (fotodiodo o LED infrarrojo) en un tubo plástico dotado de una lente convergente. Con el uso de una lente convergente, tenemos mucha mayor sensibilidad y directividad por la concentración de la lente radiación de una dirección en el sensor y por la irradiación del emisor en una dirección única. En ese caso sin embargo, la focalización del sistema será un poco más crítica pues el emisor deberá ser apuntado exactamente para el aparato controlado.

   Otro problema que puede ocurrir es que el rango de emisión de los LED infrarrojos varía ligeramente, pudiendo el tipo usado no "casarse" con la mayor sensibilidad del receptor de control remoto del aparato que está siendo controlado. En esta situación, se debe probar otro tipo de LED emisor infrarrojo. El alcance máximo obtenido dependerá mucho de la sensibilidad de los componentes usados, pero será suficiente para la mayoría de las aplicaciones domésticas.

 

 

Lista de materiales

 

Semiconductores:

CI1 - CA3140 - amplificador operacional con FET

D1 - TIL100 o equivalente - cualquier fotodiodo

Q1 - BC337 - transistores NPN de media potencia

LED1 - LED rojo común

LED2 - LED infrarrojo

Resistores: (1/8 W, 5%)

R1, R2 - 4,7 M Ω - amarillo, violeta, verde

R3 - 22 Ω - rojo, rojo, negro

Varios: B1 - Batería de 9 V S1 - Interruptor simple Placa de circuito impreso, caja para montaje, conector de batería, hilos, soldadura, recursos ópticos para el LED y fotodiodo, etc.

 

 

 

18.9MBMemory Usage47.46msRequest Duration
Joomla! Version5.2.3
PHP Version8.3.16
Identityguest
Response200
Templatecassiopeia
Database
Server
mysql
Version
10.5.22-MariaDB
Collation
latin1_swedish_ci
Conn Collation
utf8mb4_general_ci
$_GET
[]
$_POST
[]
$_SESSION
array:1 [ "joomla" => "***redacted***" ]
$_COOKIE
[]
$_SERVER
array:51 [ "USER" => "apache" "HOME" => "/usr/share/httpd" "SCRIPT_NAME" => "/index.php" "RE...
session
array:3 [ "counter" => 1 "timer" => array:3 [ "start" => 1742256956 "last" => 1742256956...
registry
array:3 [ "data" => [] "initialized" => false "separator" => "." ]
user
array:21 [ "id" => 0 "name" => null "username" => null "email" => null "password" => "***r...
  • afterLoad (85.73KB) (1.2ms)
  • afterInitialise (1.14MB) (6.92ms)
  • afterRoute (179.21KB) (1.62ms)
  • beforeRenderComponent com_content (100.7KB) (553μs)
  • Before Access::preloadComponents (all components) (33.45KB) (351μs)
  • After Access::preloadComponents (all components) (107.06KB) (465μs)
  • Before Access::preloadPermissions (com_content) (1.57KB) (8μs)
  • After Access::preloadPermissions (com_content) (16.19MB) (19.82ms)
  • Before Access::getAssetRules (id:27444 name:com_content.article.31077) (514.65KB) (928μs)
  • After Access::getAssetRules (id:27444 name:com_content.article.31077) (7.38KB) (94μs)
  • afterRenderComponent com_content (390.13KB) (7.45ms)
  • afterDispatch (2.25KB) (61μs)
  • beforeRenderRawModule mod_articles_category (Banco de Circuitos) (359.33KB) (1.75ms)
  • afterRenderRawModule mod_articles_category (Banco de Circuitos) (79.43KB) (438μs)
  • beforeRenderRawModule mod_finder (Busca_inteligente) (5.9KB) (90μs)
  • afterRenderRawModule mod_finder (Busca_inteligente) (64.98KB) (1.25ms)
  • beforeRenderModule mod_articles_category (Banco de Circuitos) (10.1KB) (607μs)
  • afterRenderModule mod_articles_category (Banco de Circuitos) (5.39KB) (77μs)
  • beforeRenderModule mod_finder (Busca_inteligente) (6.39KB) (206μs)
  • afterRenderModule mod_finder (Busca_inteligente) (4.75KB) (46μs)
  • afterRender (265.73KB) (3.39ms)
  • 1 x After Access::preloadPermissions (com_content) (16.19MB) (41.77%)
    19.82ms
    1 x afterRenderComponent com_content (390.13KB) (15.71%)
    7.45ms
    1 x afterInitialise (1.14MB) (14.58%)
    6.92ms
    1 x afterRender (265.73KB) (7.15%)
    3.39ms
    1 x beforeRenderRawModule mod_articles_category (Banco de Circuitos) (359.33KB) (3.69%)
    1.75ms
    1 x afterRoute (179.21KB) (3.42%)
    1.62ms
    1 x afterRenderRawModule mod_finder (Busca_inteligente) (64.98KB) (2.64%)
    1.25ms
    1 x afterLoad (85.73KB) (2.53%)
    1.20ms
    1 x Before Access::getAssetRules (id:27444 name:com_content.article.31077) (514.65KB) (1.96%)
    928μs
    1 x beforeRenderModule mod_articles_category (Banco de Circuitos) (10.1KB) (1.28%)
    607μs
    1 x beforeRenderComponent com_content (100.7KB) (1.17%)
    553μs
    1 x After Access::preloadComponents (all components) (107.06KB) (0.98%)
    465μs
    1 x afterRenderRawModule mod_articles_category (Banco de Circuitos) (79.43KB) (0.92%)
    438μs
    1 x Before Access::preloadComponents (all components) (33.45KB) (0.74%)
    351μs
    1 x beforeRenderModule mod_finder (Busca_inteligente) (6.39KB) (0.43%)
    206μs
    1 x After Access::getAssetRules (id:27444 name:com_content.article.31077) (7.38KB) (0.2%)
    94μs
    1 x beforeRenderRawModule mod_finder (Busca_inteligente) (5.9KB) (0.19%)
    90μs
    1 x afterRenderModule mod_articles_category (Banco de Circuitos) (5.39KB) (0.16%)
    77μs
    1 x afterDispatch (2.25KB) (0.13%)
    61μs
    1 x afterRenderModule mod_finder (Busca_inteligente) (4.75KB) (0.1%)
    46μs
    1 x Before Access::preloadPermissions (com_content) (1.57KB) (0.02%)
    8μs
21 statements were executed, 5 of which were duplicates, 16 unique11.5ms1.57MB
  • SELECT @@SESSION.sql_mode;36μs968B/libraries/src/Session/MetadataManager.php:184Copy
  • SELECT `session_id` FROM `incbmx_session` WHERE `session_id` = :session_id LIMIT 180μs1.3KBParams/libraries/src/Session/MetadataManager.php:187Copy
  • INSERT INTO `incbmx_session` (`session_id`,`guest`,`time`,`userid`,`username`,`client_id`) VALUES (:session_id, :guest, :time, :user_id, :username, :client_id)269μs944BParams/libraries/src/Session/MetadataManager.php:260Copy
  • SELECT `id`,`rules` FROM `incbmx_viewlevels`47μs656B/libraries/src/Access/Access.php:955Copy
  • SELECT `b`.`id` FROM `incbmx_usergroups` AS `a` LEFT JOIN `incbmx_usergroups` AS `b` ON `b`.`lft` <= `a`.`lft` AND `b`.`rgt` >= `a`.`rgt` WHERE `a`.`id` = :guest73μs1.64KBParams/libraries/src/Access/Access.php:868Copy
  • SELECT `c`.`id`,`c`.`asset_id`,`c`.`access`,`c`.`alias`,`c`.`checked_out`,`c`.`checked_out_time`,`c`.`created_time`,`c`.`created_user_id`,`c`.`description`,`c`.`extension`,`c`.`hits`,`c`.`language`,`c`.`level`,`c`.`lft`,`c`.`metadata`,`c`.`metadesc`,`c`.`metakey`,`c`.`modified_time`,`c`.`note`,`c`.`params`,`c`.`parent_id`,`c`.`path`,`c`.`published`,`c`.`rgt`,`c`.`title`,`c`.`modified_user_id`,`c`.`version`, CASE WHEN CHAR_LENGTH(`c`.`alias`) != 0 THEN CONCAT_WS(':', `c`.`id`, `c`.`alias`) ELSE `c`.`id` END as `slug` FROM `incbmx_categories` AS `s` INNER JOIN `incbmx_categories` AS `c` ON (`s`.`lft` <= `c`.`lft` AND `c`.`lft` < `s`.`rgt`) OR (`c`.`lft` < `s`.`lft` AND `s`.`rgt` < `c`.`rgt`) WHERE (`c`.`extension` = :extension OR `c`.`extension` = 'system') AND `c`.`published` = 1 AND `s`.`id` = :id ORDER BY `c`.`lft`260μs20.2KBParams/libraries/src/Categories/Categories.php:375Copy
  • SELECT `id`,`name`,`rules`,`parent_id` FROM `incbmx_assets` WHERE `name` IN (:preparedArray1,:preparedArray2,:preparedArray3,:preparedArray4,:preparedArray5,:preparedArray6,:preparedArray7,:preparedArray8,:preparedArray9,:preparedArray10,:preparedArray11,:preparedArray12,:preparedArray13,:preparedArray14,:preparedArray15,:preparedArray16,:preparedArray17,:preparedArray18,:preparedArray19,:preparedArray20,:preparedArray21,:preparedArray22,:preparedArray23,:preparedArray24,:preparedArray25,:preparedArray26,:preparedArray27,:preparedArray28,:preparedArray29,:preparedArray30,:preparedArray31,:preparedArray32,:preparedArray33,:preparedArray34,:preparedArray35,:preparedArray36,:preparedArray37,:preparedArray38,:preparedArray39)312μs7.44KBParams/libraries/src/Access/Access.php:357Copy
  • SELECT `id`,`name`,`rules`,`parent_id` FROM `incbmx_assets` WHERE `name` LIKE :asset OR `name` = :extension OR `parent_id` = 07.82ms1.46MBParams/libraries/src/Access/Access.php:301Copy
  • SHOW FULL COLUMNS FROM `incbmx_content`388μs2.39KB/libraries/vendor/joomla/database/src/Mysqli/MysqliDriver.php:587Copy
  • UPDATE `incbmx_content` SET `hits` = (`hits` + 1) WHERE `id` = '31077'237μs48B/libraries/src/Table/Table.php:1348Copy
  • SELECT `a`.`id`,`a`.`asset_id`,`a`.`title`,`a`.`alias`,`a`.`introtext`,`a`.`fulltext`,`a`.`state`,`a`.`catid`,`a`.`created`,`a`.`created_by`,`a`.`created_by_alias`,`a`.`modified`,`a`.`modified_by`,`a`.`checked_out`,`a`.`checked_out_time`,`a`.`publish_up`,`a`.`publish_down`,`a`.`images`,`a`.`urls`,`a`.`attribs`,`a`.`version`,`a`.`ordering`,`a`.`metakey`,`a`.`metadesc`,`a`.`access`,`a`.`hits`,`a`.`metadata`,`a`.`featured`,`a`.`language`,`fp`.`featured_up`,`fp`.`featured_down`,`c`.`title` AS `category_title`,`c`.`alias` AS `category_alias`,`c`.`access` AS `category_access`,`c`.`language` AS `category_language`,`fp`.`ordering`,`u`.`name` AS `author`,`parent`.`title` AS `parent_title`,`parent`.`id` AS `parent_id`,`parent`.`path` AS `parent_route`,`parent`.`alias` AS `parent_alias`,`parent`.`language` AS `parent_language`,ROUND(`v`.`rating_sum` / `v`.`rating_count`, 1) AS `rating`,`v`.`rating_count` AS `rating_count` FROM `incbmx_content` AS `a` INNER JOIN `incbmx_categories` AS `c` ON `c`.`id` = `a`.`catid` LEFT JOIN `incbmx_content_frontpage` AS `fp` ON `fp`.`content_id` = `a`.`id` LEFT JOIN `incbmx_users` AS `u` ON `u`.`id` = `a`.`created_by` LEFT JOIN `incbmx_categories` AS `parent` ON `parent`.`id` = `c`.`parent_id` LEFT JOIN `incbmx_content_rating` AS `v` ON `a`.`id` = `v`.`content_id` WHERE ( (`a`.`id` = :pk AND `c`.`published` > 0) AND (`a`.`publish_up` IS NULL OR `a`.`publish_up` <= :publishUp)) AND (`a`.`publish_down` IS NULL OR `a`.`publish_down` >= :publishDown) AND `a`.`state` IN (:preparedArray1,:preparedArray2)203μs22.13KBParams/components/com_content/src/Model/ArticleModel.php:215Copy
  • SELECT `c`.`id`,`c`.`asset_id`,`c`.`access`,`c`.`alias`,`c`.`checked_out`,`c`.`checked_out_time`,`c`.`created_time`,`c`.`created_user_id`,`c`.`description`,`c`.`extension`,`c`.`hits`,`c`.`language`,`c`.`level`,`c`.`lft`,`c`.`metadata`,`c`.`metadesc`,`c`.`metakey`,`c`.`modified_time`,`c`.`note`,`c`.`params`,`c`.`parent_id`,`c`.`path`,`c`.`published`,`c`.`rgt`,`c`.`title`,`c`.`modified_user_id`,`c`.`version`, CASE WHEN CHAR_LENGTH(`c`.`alias`) != 0 THEN CONCAT_WS(':', `c`.`id`, `c`.`alias`) ELSE `c`.`id` END as `slug` FROM `incbmx_categories` AS `s` INNER JOIN `incbmx_categories` AS `c` ON (`s`.`lft` <= `c`.`lft` AND `c`.`lft` < `s`.`rgt`) OR (`c`.`lft` < `s`.`lft` AND `s`.`rgt` < `c`.`rgt`) WHERE (`c`.`extension` = :extension OR `c`.`extension` = 'system') AND `c`.`access` IN (:preparedArray1,:preparedArray2) AND `c`.`published` = 1 AND `s`.`id` = :id ORDER BY `c`.`lft`207μs3.92KBParams/libraries/src/Categories/Categories.php:375Copy
  • SELECT `m`.`tag_id`,`t`.* FROM `incbmx_contentitem_tag_map` AS `m` INNER JOIN `incbmx_tags` AS `t` ON `m`.`tag_id` = `t`.`id` WHERE `m`.`type_alias` = :contentType AND `m`.`content_item_id` = :id AND `t`.`published` = 1 AND `t`.`access` IN (:preparedArray1,:preparedArray2)264μs3.98KBParams/libraries/src/Helper/TagsHelper.php:388Copy
  • SELECT `c`.`id`,`c`.`asset_id`,`c`.`access`,`c`.`alias`,`c`.`checked_out`,`c`.`checked_out_time`,`c`.`created_time`,`c`.`created_user_id`,`c`.`description`,`c`.`extension`,`c`.`hits`,`c`.`language`,`c`.`level`,`c`.`lft`,`c`.`metadata`,`c`.`metadesc`,`c`.`metakey`,`c`.`modified_time`,`c`.`note`,`c`.`params`,`c`.`parent_id`,`c`.`path`,`c`.`published`,`c`.`rgt`,`c`.`title`,`c`.`modified_user_id`,`c`.`version`, CASE WHEN CHAR_LENGTH(`c`.`alias`) != 0 THEN CONCAT_WS(':', `c`.`id`, `c`.`alias`) ELSE `c`.`id` END as `slug` FROM `incbmx_categories` AS `s` INNER JOIN `incbmx_categories` AS `c` ON (`s`.`lft` <= `c`.`lft` AND `c`.`lft` < `s`.`rgt`) OR (`c`.`lft` < `s`.`lft` AND `s`.`rgt` < `c`.`rgt`) WHERE (`c`.`extension` = :extension OR `c`.`extension` = 'system') AND `c`.`access` IN (:preparedArray1,:preparedArray2) AND `c`.`published` = 1 AND `s`.`id` = :id ORDER BY `c`.`lft`195μs3.92KBParams/libraries/src/Categories/Categories.php:375Copy
  • SELECT DISTINCT a.id, a.title, a.name, a.checked_out, a.checked_out_time, a.note, a.state, a.access, a.created_time, a.created_user_id, a.ordering, a.language, a.fieldparams, a.params, a.type, a.default_value, a.context, a.group_id, a.label, a.description, a.required, a.only_use_in_subform,l.title AS language_title, l.image AS language_image,uc.name AS editor,ag.title AS access_level,ua.name AS author_name,g.title AS group_title, g.access as group_access, g.state AS group_state, g.note as group_note FROM incbmx_fields AS a LEFT JOIN `incbmx_languages` AS l ON l.lang_code = a.language LEFT JOIN incbmx_users AS uc ON uc.id=a.checked_out LEFT JOIN incbmx_viewlevels AS ag ON ag.id = a.access LEFT JOIN incbmx_users AS ua ON ua.id = a.created_user_id LEFT JOIN incbmx_fields_groups AS g ON g.id = a.group_id LEFT JOIN `incbmx_fields_categories` AS fc ON fc.field_id = a.id WHERE ( (`a`.`context` = :context AND (`fc`.`category_id` IS NULL OR `fc`.`category_id` IN (:preparedArray1,:preparedArray2,:preparedArray3)) AND `a`.`access` IN (:preparedArray4,:preparedArray5)) AND (`a`.`group_id` = 0 OR `g`.`access` IN (:preparedArray6,:preparedArray7)) AND `a`.`state` = :state) AND (`a`.`group_id` = 0 OR `g`.`state` = :gstate) AND `a`.`only_use_in_subform` = :only_use_in_subform ORDER BY a.ordering ASC395μs4.81KBParams/libraries/src/MVC/Model/BaseDatabaseModel.php:164Copy
  • SELECT `c`.`id`,`c`.`asset_id`,`c`.`access`,`c`.`alias`,`c`.`checked_out`,`c`.`checked_out_time`,`c`.`created_time`,`c`.`created_user_id`,`c`.`description`,`c`.`extension`,`c`.`hits`,`c`.`language`,`c`.`level`,`c`.`lft`,`c`.`metadata`,`c`.`metadesc`,`c`.`metakey`,`c`.`modified_time`,`c`.`note`,`c`.`params`,`c`.`parent_id`,`c`.`path`,`c`.`published`,`c`.`rgt`,`c`.`title`,`c`.`modified_user_id`,`c`.`version`, CASE WHEN CHAR_LENGTH(`c`.`alias`) != 0 THEN CONCAT_WS(':', `c`.`id`, `c`.`alias`) ELSE `c`.`id` END as `slug` FROM `incbmx_categories` AS `s` INNER JOIN `incbmx_categories` AS `c` ON (`s`.`lft` <= `c`.`lft` AND `c`.`lft` < `s`.`rgt`) OR (`c`.`lft` < `s`.`lft` AND `s`.`rgt` < `c`.`rgt`) WHERE (`c`.`extension` = :extension OR `c`.`extension` = 'system') AND `c`.`access` IN (:preparedArray1,:preparedArray2) AND `c`.`published` = 1 AND `s`.`id` = :id ORDER BY `c`.`lft`188μs3.92KBParams/libraries/src/Categories/Categories.php:375Copy
  • SELECT `name`,`element` FROM `incbmx_extensions` WHERE `type` = 'plugin' AND `folder` = 'finder' AND `enabled` = 1142μs1.89KB/administrator/components/com_finder/src/Helper/LanguageHelper.php:135Copy
  • SELECT `title` FROM `incbmx_finder_taxonomy` WHERE `parent_id` = 1 AND `state` = 1 AND `access` IN (1,5)87μs648B/administrator/components/com_finder/src/Indexer/Taxonomy.php:325Copy
  • SELECT * FROM `incbmx_schemaorg` WHERE `itemId` = :itemId AND `context` = :context66μs1.55KBParams/plugins/system/schemaorg/src/Extension/Schemaorg.php:403Copy
  • SELECT `a`.`id`,`a`.`asset_id`,`a`.`title`,`a`.`alias`,`a`.`introtext`,`a`.`fulltext`,`a`.`state`,`a`.`catid`,`a`.`created`,`a`.`created_by`,`a`.`created_by_alias`,`a`.`modified`,`a`.`modified_by`,`a`.`checked_out`,`a`.`checked_out_time`,`a`.`publish_up`,`a`.`publish_down`,`a`.`images`,`a`.`urls`,`a`.`attribs`,`a`.`version`,`a`.`ordering`,`a`.`metakey`,`a`.`metadesc`,`a`.`access`,`a`.`hits`,`a`.`metadata`,`a`.`featured`,`a`.`language`,`fp`.`featured_up`,`fp`.`featured_down`,`c`.`title` AS `category_title`,`c`.`alias` AS `category_alias`,`c`.`access` AS `category_access`,`c`.`language` AS `category_language`,`fp`.`ordering`,`u`.`name` AS `author`,`parent`.`title` AS `parent_title`,`parent`.`id` AS `parent_id`,`parent`.`path` AS `parent_route`,`parent`.`alias` AS `parent_alias`,`parent`.`language` AS `parent_language`,ROUND(`v`.`rating_sum` / `v`.`rating_count`, 1) AS `rating`,`v`.`rating_count` AS `rating_count` FROM `incbmx_content` AS `a` INNER JOIN `incbmx_categories` AS `c` ON `c`.`id` = `a`.`catid` LEFT JOIN `incbmx_content_frontpage` AS `fp` ON `fp`.`content_id` = `a`.`id` LEFT JOIN `incbmx_users` AS `u` ON `u`.`id` = `a`.`created_by` LEFT JOIN `incbmx_categories` AS `parent` ON `parent`.`id` = `c`.`parent_id` LEFT JOIN `incbmx_content_rating` AS `v` ON `a`.`id` = `v`.`content_id` WHERE ( (`a`.`id` = :pk AND `c`.`published` > 0) AND (`a`.`publish_up` IS NULL OR `a`.`publish_up` <= :publishUp)) AND (`a`.`publish_down` IS NULL OR `a`.`publish_down` >= :publishDown) AND `a`.`state` IN (:preparedArray1,:preparedArray2)165μs22.17KBParams/components/com_content/src/Model/ArticleModel.php:215Copy
  • SELECT SUM(CASE WHEN `a`.`next_execution` <= :now THEN 1 ELSE 0 END) AS due_count,SUM(CASE WHEN `a`.`locked` IS NULL THEN 0 ELSE 1 END) AS locked_count FROM `incbmx_scheduler_tasks` AS `a` WHERE `a`.`state` = 172μs1.37KBParams/administrator/components/com_scheduler/src/Model/TasksModel.php:465Copy