En este artículo seguimos abordando la placa Micro: bit, como preparación para una serie de proyectos prácticos que se darán en secuencia. Nos ocuparemos de las salidas, entradas, procesos, datos.

 

Nota: Parte I en Introducción a Micro:Bit (MIC053S)

 

SALIDAS

Todos los computadores y sistemas digitales basados en procesadores se componen principalmente de cuatro partes principales:

 

Salidas.

Procesos.

Datos.

Entradas.

 

Observe el siguiente diagrama en bloques, donde se representan estas partes:

 


| Haga click en la imagen para ampliar |

 

 

La tarjeta micro:bit, por ser basada en un procesador, también posee estas cuatro partes. En este texto estudiaremos las salidas.

 

 


 

 

 

 

EL LED.

El LED es un componente electrónico de salida que emite luz cuando circula corriente eléctrica a través del. En otras palabras, un LED puede transformar la corriente eléctrica en luz. Los LEDs son utilizados en la mayoría de los proyectos y equipos electrónicos como: televisores, equipos médicos, automóviles, alarmas, juguetes, cámaras, etc. La siguiente figura muestra algunas clases de LEDs:

 


| Haga click en la imagen para ampliar |

 

 

La tarjeta micro:bit posee 25 LEDs para emitir luz, los cuales están arreglados en una matriz de 5x5, como muestra la siguiente figura:

 


 

 

 

MATRIZ DE LEDs DE 5x5.

 

Para programar o controlar la matriz de LEDs, de click a la función “Básico”, como mostrado en la siguiente imagen:

 


 

 

 

 

Al hacer click en esta función, aparecerán los bloques para programar la matriz de LEDs de 5x5 como mostrado en la siguiente imagen:

 


 

 

 

Note que tenemos bloques como:

mostrar número.

mostrar LEDs.

mostrar icono.

mostrar cadena.

borrar pantalla.

 

MOSTRAR LED.

Para encender y apagar los LEDs, arrastre el bloque de programación “mostrar LEDs” hasta el loop “para siempre”, como mostrado en la siguiente figura:

 


 

 

 

Ahora puede hacer click en cualquiera de los 25 LEDs. Si el cuadro que representa el LED, está en color blanco, entonces significa que va ha encender. El siguiente ejemplo:

 


 

 

 

dará como resultado:

 


 

 

 

El siguiente ejemplo:

 


 

 

 

dará como resultado:

 


 

 

 

Así se puede formar cualquier combinación que la mente imagine, pudiendo hacerse secuencias, figuras, iconos, texto, números.

 

MOSTRAR SECUENCIA EN MATRIZ LED 5x5.

Para hacer secuencias podemos usar varios bloques de programación “mostrar LEDs”. Por ejemplo, observe la siguiente figura:

 


 

 

 

Este programa mostrará una secuencia como la siguiente:

 


| Haga click en la imagen para ampliar |

 

 

Experimenta secuencias como las que siguen:

 


 

 

 

MOSTRAR ICONOS EN MATRIZ LED 5x5.

Para mostrar iconos, arrastre el bloque de programación: “mostrar icono” para el loop “para siempre”, como mostrado en la siguiente figura:

 

 


 

 

 

esto producirá una salida en la matriz de LED, como la mostrada en la siguiente figura:

 

 

 


 

 

 

El bloque de programación “mostrar icono”, viene con una serie de iconos ya programados como se puede ver en la siguiente figura:

 


 

 

 

 

Dentro de los iconos podemos notar referencias a emociones como las mostradas en la siguiente figura:

 


 

 

 

Referencias a animales:

 


 

 

 

Referencias a notas musicales:

 


 

 

 

Referencias a formas geométricas:

 


 

 

 

MOSTRAR CADENAS EN MATRIZ LED 5x5.

En la matriz de LED 5x5 también se pueden mostrar caracteres y cadenas de texto. Para eso se puede usar el bloque de programación “mostrar cadena”, como se puede ver en la siguiente figura:

 


 

 

 

Las cadenas de texto programadas con este bloque se van desplazando por el display hasta mostrar la palabra “Hello”. Este tipo de bloque es muy usado en el mundo de la computación y la electrónica para mostrar datos e informaciones a los usuarios. Por ejemplo, si queremos informar la temperatura, podemos usar una cadena como:

 


 

 

 

MOSTRAR NÚMEROS EN MATRIZ LED 5x5.

Otro tipo de datos que se puede mostrar en la matriz de LED 5x5 son los números. Para ello podemos usar el mismo bloque de programación “mostrar número”, El siguiente ejemplo muestra la temperatura en números:

 

 


 

 

 

Un programa más completo se puede hacer usando 2 bloques de programación. El programa completo sería así:

 


 

 

 

O también puede ser así:

 


 

 

 

Los dos darán el mismo efecto:

 


 

 

 

MOSTRAR FLECHAS EN MATRIZ LED 5x5.

Otra característica que se puede mostrar en la matriz de LED 5x5, son flechas como mostrado en la siguiente figura:

 


| Haga click en la imagen para ampliar |

 

 

Para hacer esto podemos usar el bloque de programación “mostrar flecha”, como muestra la siguiente figura:

 


 

 

 

Es posible seleccionar la dirección de la flecha, haciendo click en el menú desplegable de bloque “mostrar flecha”, como muestra la siguiente figura:

 


 

 

 

BORRAR LA MATRIZ LED 5x5.

El bloque de programación “borrar la pantalla” permite borrar (clear) la matriz de LED 5x5. La siguiente figura muestra este bloque:

 


 

 

 

BLOQUES PARA GRAFICAR EN LA MATRIZ LED 5x5.

Hay varias instrucciones que nos permiten manejar la matriz de LED 5x5 en forma de coordenada (x,y). La “x” representa un valor horizontal. La “y” representa un valor vertical. Es decir, el primer LED de la esquina superior derecha, se referencia con el valor de (0,0), el siguiente con el valor (0,1) y así sucesivamente. Observe la siguiente figura:

 

 


| Haga click en la imagen para ampliar |

 

 

Los bloques para graficar se encuentran en la función “LED” como muestra la siguiente imagen:

 

 


 

 

 

 

Para encender un LED en una determinada coordenada podemos usar el bloque de programación “graficar x,y” como muestra la siguiente imagen:

 


 

 

 

Esto dará como resultado el siguiente efecto en la matriz de LED:

 


 

 

 

Para apagar algún LED de la matriz, podemos usar el bloque de programación: “ocultar x,y”, como muestra la siguiente imagen:

 


 

 

 

Para invertir el valor de una coordenada, es decir: si esta apagado el LED, entonces prenderlo o si esta prendido entonces apagarlo (toggle), se puede usar el bloque de programación: “invertir x,y” como muestra la siguiente figura:

 


 

 

 

También podemos trazar un gráfico de barras de un ‘valor’ hasta un ‘alto’. Para esto se usa el bloque de programación: “plot bar graph de ‘valor’ hasta ‘alto''' como mostrado en la siguiente imagen:

 


 

 

 

Este programa da como resultado la siguiente barra en la matriz de LED:

 

 


 

 

 

 

Observe que cuando es seleccionada la función LED, aparece una función: “... mas”, abajo de LED, como muestra la siguiente figura:

 


 

 

 

Dando click en esta función, encontraremos más bloques de programación para controlar la matriz de LED 5x5 como muestra la siguiente figura:

 


 

 

 

También es posible encender o prender los LEDs de la matriz con un nivel de brillo. Para hacer esto podemos usar el bloque de programación: “graficar x y brillo”, como se muestra en la siguiente figura:

 


 

 

 

Por ejemplo, observe en el siguiente programa como los LEDs tienen diferente el brillo:

 

 


 

 

 

Da como resultado en la matriz de LED el siguiente efecto:

 


 

 

 

 

También es posible controlar el brillo de toda la matriz de LED 5x5, para lo cual se puede usar el siguiente bloque de programación:

 


 

 

 

Observe el siguiente programa donde el brillo de los LEDs es controlado para un nivel bajo.

 


 

 

 

Los LEDs tendrían un nivel similar al mostrado en la siguiente figura:

 


 

 

 

Cuando se está mostrando una animación en la matriz y se desee cancelar, se puede usar el bloque de programación: “detener animación”, como muestra la siguiente figura:

 


 

 

 

Para encender y apagar la matriz de LED 5x5, podemos usar el bloque de programación: “activar leds”. Si se quiere encender toda la matriz podemos usar el bloque como muestra la siguiente figura:

 


 

 

 

Si se quiere apagar la matriz podemos usar el bloque “activar leds”, como muestra la siguiente figura:

 


 

 

 

PINES.

Los pines se pueden configurar como salidas o entradas y son los puertos de comunicación con el mundo exterior. En la siguiente figura podemos observar algunos pines de salida de algunas tarjetas de programación muy comunes como: micro:bit, arduino y raspberry.:

 


| Haga click en la imagen para ampliar |

 

 

Las salidas que tiene la tarjeta micro:bit, son pines, los cuales se pueden observar en la siguiente figura:

 


 

 

 

Las funciones para controlar estas salidas (pines) se pueden encontrar en la función: “Avanzado”. Observe la siguiente figura:

 


 

 

 

Dando click en esta función, aparece la función: “Pines” como se observa en la siguiente figura:

 


 

 

 

Dando click en la función: “Pines” encontramos una serie de bloques de programación dedicados a salidas, como mostrado en la siguiente figura:

 


| Haga click en la imagen para ampliar |

 

 

Para escribir un nivel alto o bajo en un pin podemos usar el bloque de programación: “escritura digital pin Px a”, donde la x representa el número del pin que se desea programar. Por ejemplo, el siguiente programa:

 


 

 

 

Da como resultado en el simulador la siguiente imagen:

 


 

 

 

Podemos programar hasta 17 pines de salida como se muestra en el menú desplegable del bloque “escritura digital pin Px a”. Observe la siguiente figura:

 


 

 

 

Por ejemplo, el siguiente programa:

 


 

 

 

Da como resultado en el simulador el siguiente efecto:

 


 

 

 

 

También podemos establecer un nivel de voltaje analógico en los pines configurados como salida. Para esto podemos usar el bloque de programación: “escritura analógica pin Px a”, donde la x representa el pin que se desea controlar. El valor de salida analógico debe estar entre 0 y 1023. Por ejemplo, el siguiente programa:

 


 

 

 

Da como resultado en el simulador el siguiente efecto:

 


 

 

 

Observe el nivel de tensión en el pin 0. La tarjeta micro:bit, permite colocar una serie de pines para salidas analógicas como mostrado en la siguiente figura:

 


| Haga click en la imagen para ampliar |

 

 

El siguiente programa:

 


 

 

 

da como resultado el siguiente efecto en el simulador:

 


 

 

 

Existen otros tipos de salida que requieren de un estudio separado, como el bus I2C, SPI, servos, etc, los cuales veremos en próximos temas.

 

 

19.087MBMemory Usage46.74msRequest Duration
Joomla! Version5.2.3
PHP Version8.3.20
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
array:1 [ "c2123392c06423339225f3431360b7e6" => "kiials977hnjfku39ot1sjr3mn" ]
$_SERVER
array:52 [ "USER" => "apache" "HOME" => "/usr/share/httpd" "SCRIPT_NAME" => "/index.php" "RE...
session
array:3 [ "counter" => 3 "timer" => array:3 [ "start" => 1751699647 "last" => 1751699647...
registry
array:3 [ "data" => [] "initialized" => false "separator" => "." ]
user
array:21 [ "id" => 0 "name" => null "username" => null "email" => null "password" => "***r...
  • afterLoad (85.55KB) (1.31ms)
  • afterInitialise (1.14MB) (6ms)
  • afterRoute (179.16KB) (1.44ms)
  • beforeRenderComponent com_content (100.7KB) (605μs)
  • Before Access::preloadComponents (all components) (33.45KB) (392μs)
  • After Access::preloadComponents (all components) (107.06KB) (365μs)
  • Before Access::preloadPermissions (com_content) (1.57KB) (9μs)
  • After Access::preloadPermissions (com_content) (16.22MB) (19.18ms)
  • Before Access::getAssetRules (id:21014 name:com_content.article.24825) (514.65KB) (895μs)
  • After Access::getAssetRules (id:21014 name:com_content.article.24825) (7.38KB) (55μs)
  • afterRenderComponent com_content (462.55KB) (7.14ms)
  • afterDispatch (2.25KB) (59μs)
  • beforeRenderRawModule mod_articles_category (Banco de Circuitos) (358.44KB) (1.87ms)
  • afterRenderRawModule mod_articles_category (Banco de Circuitos) (79.86KB) (475μs)
  • beforeRenderRawModule mod_finder (Busca_inteligente) (1.51KB) (140μs)
  • afterRenderRawModule mod_finder (Busca_inteligente) (64.68KB) (1.31ms)
  • beforeRenderModule mod_articles_category (Banco de Circuitos) (9.27KB) (601μs)
  • afterRenderModule mod_articles_category (Banco de Circuitos) (5.47KB) (102μs)
  • beforeRenderModule mod_finder (Busca_inteligente) (6.64KB) (188μs)
  • afterRenderModule mod_finder (Busca_inteligente) (4.75KB) (54μs)
  • afterRender (337.39KB) (4.38ms)
  • 1 x After Access::preloadPermissions (com_content) (16.22MB) (41.03%)
    19.18ms
    1 x afterRenderComponent com_content (462.55KB) (15.29%)
    7.14ms
    1 x afterInitialise (1.14MB) (12.83%)
    6.00ms
    1 x afterRender (337.39KB) (9.38%)
    4.38ms
    1 x beforeRenderRawModule mod_articles_category (Banco de Circuitos) (358.44KB) (4.01%)
    1.87ms
    1 x afterRoute (179.16KB) (3.08%)
    1.44ms
    1 x afterLoad (85.55KB) (2.8%)
    1.31ms
    1 x afterRenderRawModule mod_finder (Busca_inteligente) (64.68KB) (2.8%)
    1.31ms
    1 x Before Access::getAssetRules (id:21014 name:com_content.article.24825) (514.65KB) (1.92%)
    895μs
    1 x beforeRenderComponent com_content (100.7KB) (1.29%)
    605μs
    1 x beforeRenderModule mod_articles_category (Banco de Circuitos) (9.27KB) (1.29%)
    601μs
    1 x afterRenderRawModule mod_articles_category (Banco de Circuitos) (79.86KB) (1.02%)
    475μs
    1 x Before Access::preloadComponents (all components) (33.45KB) (0.84%)
    392μs
    1 x After Access::preloadComponents (all components) (107.06KB) (0.78%)
    365μs
    1 x beforeRenderModule mod_finder (Busca_inteligente) (6.64KB) (0.4%)
    188μs
    1 x beforeRenderRawModule mod_finder (Busca_inteligente) (1.51KB) (0.3%)
    140μs
    1 x afterRenderModule mod_articles_category (Banco de Circuitos) (5.47KB) (0.22%)
    102μs
    1 x afterDispatch (2.25KB) (0.13%)
    59μs
    1 x After Access::getAssetRules (id:21014 name:com_content.article.24825) (7.38KB) (0.12%)
    55μs
    1 x afterRenderModule mod_finder (Busca_inteligente) (4.75KB) (0.12%)
    54μs
    1 x Before Access::preloadPermissions (com_content) (1.57KB) (0.02%)
    9μs
24 statements were executed, 7 of which were duplicates, 17 unique11.2ms1.67MB
  • SELECT @@SESSION.sql_mode;33μs968B/libraries/src/Session/MetadataManager.php:184Copy
  • SELECT `session_id` FROM `incbmx_session` WHERE `session_id` = :session_id LIMIT 162μs1.31KBParams/libraries/src/Session/MetadataManager.php:187Copy
  • UPDATE `incbmx_session` SET `guest` = :guest , `time` = :time , `userid` = :user_id , `username` = :username , `client_id` = :client_id WHERE `session_id` = :session_id154μs992BParams/libraries/src/Session/MetadataManager.php:316Copy
  • SELECT `id`,`rules` FROM `incbmx_viewlevels`54μs608B/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` = :guest78μ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`229μ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)213μ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.65ms1.48MBParams/libraries/src/Access/Access.php:301Copy
  • SHOW FULL COLUMNS FROM `incbmx_content`356μs2.39KB/libraries/vendor/joomla/database/src/Mysqli/MysqliDriver.php:587Copy
  • UPDATE `incbmx_content` SET `hits` = (`hits` + 1) WHERE `id` = '24825'159μ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)162μs62.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`184μ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)295μ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`167μ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 ASC384μ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`169μs3.92KBParams/libraries/src/Categories/Categories.php:375Copy
  • SELECT `name`,`element` FROM `incbmx_extensions` WHERE `type` = 'plugin' AND `folder` = 'finder' AND `enabled` = 1154μ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)95μs648B/administrator/components/com_finder/src/Indexer/Taxonomy.php:325Copy
  • SELECT * FROM `incbmx_schemaorg` WHERE `itemId` = :itemId AND `context` = :context64μ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)160μs62.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` = 176μs1.37KBParams/administrator/components/com_scheduler/src/Model/TasksModel.php:465Copy
  • SELECT `alias` FROM `incbmx_content` WHERE `id` = :id47μs1.31KBParams/components/com_content/src/Service/Router.php:168Copy
  • 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`192μs3.92KBParams/libraries/src/Categories/Categories.php:375Copy
  • SELECT `alias` FROM `incbmx_content` WHERE `id` = :id53μs1.31KBParams/components/com_content/src/Service/Router.php:168Copy