En la primera parte de este artículo vimos cómo usar el Arduino UNO en el accionamiento de los espejos de cristal líquido con la introducción del módulo como se puede hacer y también algunos códigos de ejemplo. Continuamos ahora con algunos ejemplos de códigos de accionamiento.

Nota: Parte 1 en MIC029S

 

lcd.noBlink();

El siguiente programa escribe hello, world! en la pantalla del LCD. Luego, en la función loop() apaga el parpadeo del cursor, por 3 segundos. Luego, habilita el parpadeo del cursor por 3 segundos. Así, repite este bucle indefinidamente. El código para este programa puede ser encontrado en el menú: Archivo->Ejemplos->LiquidCristal->Blink.

 

 

// include the library code:

#include

// initialize the library by associating any needed LCD interface pin with the arduino pin number it is connected to

const int rs = 12, en = 11, d4 = 5, d5 = 4, d6 = 3, d7 = 2;
LiquidCrystal lcd(rs, en, d4, d5, d6, d7);


void setup() {
   // set up the LCD's number of columns and rows:

   lcd.begin(16, 2);
   // Print a message to the LCD.

   lcd.print("hello, world!");
}



void loop() {
   // Turn off the blinking cursor:
   lcd.noBlink();
   delay(3000);
   // Turn on the blinking cursor:
   lcd.blink();
   delay(3000);
}

La Figura 11 muestra el diagrama de flujo para este programa.

 

 

Figura 11. Diagrama de Flujo para Oscilación del cursor
Figura 11. Diagrama de Flujo para Oscilación del cursor

 

 

DESPLAZANDO EL TEXTO EN LA PANTALLA DEL LCD.

Para algunas aplicaciones puede ser necesario desplazar el texto en la pantalla del LCD. Para esto existen 2 instrucciones que permiten desplazar el texto. La instrucción scrollDisplayLeft(); mueve el texto hacia la izquierda y la instrucción scrollDisplayRight(); mueve el código hacia la derecha. Como la memoria RAM del LCD es más grande que los caracteres mostrados en la pantalla, es posible escribir caracteres en toda la memoria RAM y desplazarlos según sea necesario. El siguiente programa muestra el uso de estas instrucciones. El programa puede ser encontrado en el menú: Archivo->Ejemplos->LiquidCristal->Scroll.

 

// include the library code:

#include
// initialize the library by associating any needed LCD interface pin
// with the arduino pin number it is connected to

const int rs = 12, en = 11, d4 = 5, d5 = 4, d6 = 3, d7 = 2;
LiquidCrystal lcd(rs, en, d4, d5, d6, d7);

void setup() {
   // set up the LCD's number of columns and rows:
   lcd.begin(16, 2);
   // Print a message to the LCD.
   lcd.print("hello, world!");
   delay(1000);
}


void loop() {
   // scroll 13 positions (string length) to the left
   // to move it offscreen left:
   for(int positionCounter = 0; positionCounter < 13; positionCounter++) {
      // scroll one position left:
      lcd.scrollDisplayLeft();
      // wait a bit:
      delay(150);
   }

   // scroll 29 positions (string length + display length) to the right
   // to move it offscreen right:

for(int positionCounter = 0; positionCounter < 29; positionCounter++) { // scroll one position right: lcd.scrollDisplayRight(); // wait a bit: delay(150); } // scroll 16 positions (display length + string length) to the left // to move it back to center: for (int positionCounter = 0; positionCounter < 16; positionCounter++) { // scroll one position left: lcd.scrollDisplayLeft(); // wait a bit: delay(150); } // delay at the end of the full loop: delay(1000); }

 

La Figura 12 muestra el diagrama de flujo para este programa.

 

Figura 12. Diagrama de Flujo para Despazamiento de Texto en el LCD
Figura 12. Diagrama de Flujo para Despazamiento de Texto en el LCD

 

 

MOSTRANDO CARACTERES PEROSONALIZADOS EN EL LCD.

Es posible crear caracteres personalizados y mostrarlos en LCD. Para hacer esto es necesario crear arrays de 8 bytes, donde se describa o defina el carácter que se quiere personalizar. Esto crea un array de 5x8 pixeles. Para que un pixel se encienda (on) en el LCD, es necesario definir como 1 lógico en el array. Cuando queremos que un pixel se apague, es necesario definirlo como 0 lógico. Por ejemplo, el siguiente array define un corazón(heart):

byte heart[8] = {

0b00000,

0b01010,

0b11111,

0b11111,

0b11111,

0b01110,

0b00100,

0b00000

};

Solo los primeros 5 pixeles de cada byte, serán mostrados en el LCD. Los demás pixeles son ignorados. En el siguiente programa creamos varios caracteres personalizados y los mostramos en el LCD. Para testar este programa puede usar el diagrama de conexión de la Figura 13. Este programa puede ser encontrado en el menú: Archivo->Ejemplos->LiquidCristal->CustomCharacters.

 

 

Figura 13. Mostrando Caracteres Personalizados
Figura 13. Mostrando Caracteres Personalizados

 

 

// include the library code:

#include

 

// initialize the library by associating any needed LCD interface pin

// with the arduino pin number it is connected to

const int rs = 12, en = 11, d4 = 5, d5 = 4, d6 = 3, d7 = 2;

LiquidCrystal lcd(rs, en, d4, d5, d6, d7);

 

// make some custom characters:

byte heart[8] = {

0b00000,

0b01010,

0b11111,

0b11111,

0b11111,

0b01110,

0b00100,

0b00000

};

 

byte smiley[8] = {

0b00000,

0b00000,

0b01010,

0b00000,

0b00000,

0b10001,

0b01110,

0b00000

};

 

byte frownie[8] = {

0b00000,

0b00000,

0b01010,

0b00000,

0b00000,

0b00000,

0b01110,

0b10001

};

 

byte armsDown[8] = {

0b00100,

0b01010,

0b00100,

0b00100,

0b01110,

0b10101,

0b00100,

0b01010

};

 

byte armsUp[8] = {

0b00100,

0b01010,

0b00100,

0b10101,

0b01110,

0b00100,

0b00100,

0b01010

};

 

void setup() {

// initialize LCD and set up the number of columns and rows:

lcd.begin(16, 2);

 

// create a new character

lcd.createChar(0, heart);

// create a new character

lcd.createChar(1, smiley);

// create a new character

lcd.createChar(2, frownie);

// create a new character

lcd.createChar(3, armsDown);

// create a new character

lcd.createChar(4, armsUp);

 

// set the cursor to the top left

lcd.setCursor(0, 0);

 

// Print a message to the lcd.

lcd.print("I ");

lcd.write(byte(0)); // when calling lcd.write() '0' must be cast as a byte

lcd.print(" Arduino! ");

lcd.write((byte)1);

 

}

 

void loop() {

// read the potentiometer on A0:

int sensorReading = analogRead(A0);

// map the result to 200 - 1000:

int delayTime = map(sensorReading, 0, 1023, 200, 1000);

// set the cursor to the bottom row, 5th position:

lcd.setCursor(4, 1);

// draw the little man, arms down:

lcd.write(3);

delay(delayTime);

lcd.setCursor(4, 1);

// draw him arms up:

lcd.write(4);

delay(delayTime);

}

 

El programa comienza incluyendo la librería LiquidCrystal en la línea de código:

#Include <LiquidCrystal.h> 

Después, definimos los pines usados para comunicarnos y controlar el LCD. Luego creamos el objeto o estructura lcd. Después, creamos los caracteres personalizados. Para hacer esto usamos la línea de código:

lcd.createChar

Los caracteres pueden ser observados en laFigura 14 . Luego, está la función setup() en la que definimos el tipo de display (2 líneas x 16 caracteres) con la línea de código:

lcd.begin(16, 2);

 

Figura 14. Caracteres Personalizados
Figura 14. Caracteres Personalizados

 

Luego imprimimos un mensaje en LCD, donde son usados los primeros 2 caracteres personalizados. Después, entramos en la función loop() donde leemos el potenciómetro conectado a la entrada analógica 0. Mapeamos el valor leído en un valor entre 200 y 1000. Este valor lo almacenamos en la variabledelayTime, la cual vamos a usar para temporizar cuando se muestran los caracteres personalizados sobre el LCD. Después, colocamos el cursor en la columna 5 de la línea 2 y mostramos el carácter personalizado de un hombre con los brazos abajo ( armsDown ). Para hacer esto usamos la instrucción:

lcd.setCursor(4, 1);

Luego temporizamos por el valor contenido en la variable delayTime y mostramos el carácter personalizado de un hombre con los brazos arriba ( armsUp ). Nuevamente retardamos y repetimos indefinidamente el programa. En la Figura 15 se puede observar el diagrama de flujo para este programa y la Figura 16 podemos observar los caracteres ASCII definidos internamente en le LCD.

 

 

Figura 15. Diagrama de Flujo para caracteres personalizados en el LCD
Figura 15. Diagrama de Flujo para caracteres personalizados en el LCD

 

 

 

Figura 16. Caracteres ASCII del LCD
Figura 16. Caracteres ASCII del LCD

 

Como podemos notar, es muy fácil el manejo del LCD, gracias a que la librería LiquidCrystal incorpora todas las funciones necesarias para controlar la pantalla. Existen más funciones que pueden ser exploradas en los ejemplos de la IDE de Arduino.

 

 

 

19.103MBMemory Usage55.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" => 1741915263 "last" => 1741915263...
registry
array:3 [ "data" => [] "initialized" => false "separator" => "." ]
user
array:21 [ "id" => 0 "name" => null "username" => null "email" => null "password" => "***r...
  • afterLoad (85.98KB) (203μs)
  • afterInitialise (1.14MB) (3.85ms)
  • afterRoute (179.16KB) (1.03ms)
  • beforeRenderComponent com_content (100.65KB) (479μs)
  • Before Access::preloadComponents (all components) (33.5KB) (197μs)
  • After Access::preloadComponents (all components) (107.06KB) (418μs)
  • Before Access::preloadPermissions (com_content) (1.57KB) (7μs)
  • After Access::preloadPermissions (com_content) (16.19MB) (30.65ms)
  • Before Access::getAssetRules (id:8 name:com_content) (480.16KB) (2.1ms)
  • After Access::getAssetRules (id:8 name:com_content) (7.36KB) (43μs)
  • afterRenderComponent com_content (487.77KB) (6.48ms)
  • afterDispatch (2.25KB) (56μs)
  • beforeRenderRawModule mod_articles_category (Banco de Circuitos) (423.33KB) (2.36ms)
  • afterRenderRawModule mod_articles_category (Banco de Circuitos) (15.43KB) (414μs)
  • beforeRenderRawModule mod_finder (Busca_inteligente) (5.9KB) (113μs)
  • afterRenderRawModule mod_finder (Busca_inteligente) (63.1KB) (1.32ms)
  • beforeRenderModule mod_articles_category (Banco de Circuitos) (9.98KB) (750μs)
  • afterRenderModule mod_articles_category (Banco de Circuitos) (5.39KB) (79μs)
  • beforeRenderModule mod_finder (Busca_inteligente) (6.39KB) (231μs)
  • afterRenderModule mod_finder (Busca_inteligente) (4.44KB) (65μs)
  • afterRender (328.48KB) (4.51ms)
  • 1 x After Access::preloadPermissions (com_content) (16.19MB) (55.26%)
    30.65ms
    1 x afterRenderComponent com_content (487.77KB) (11.68%)
    6.48ms
    1 x afterRender (328.48KB) (8.13%)
    4.51ms
    1 x afterInitialise (1.14MB) (6.94%)
    3.85ms
    1 x beforeRenderRawModule mod_articles_category (Banco de Circuitos) (423.33KB) (4.26%)
    2.36ms
    1 x Before Access::getAssetRules (id:8 name:com_content) (480.16KB) (3.79%)
    2.10ms
    1 x afterRenderRawModule mod_finder (Busca_inteligente) (63.1KB) (2.39%)
    1.32ms
    1 x afterRoute (179.16KB) (1.85%)
    1.03ms
    1 x beforeRenderModule mod_articles_category (Banco de Circuitos) (9.98KB) (1.35%)
    750μs
    1 x beforeRenderComponent com_content (100.65KB) (0.86%)
    479μs
    1 x After Access::preloadComponents (all components) (107.06KB) (0.75%)
    418μs
    1 x afterRenderRawModule mod_articles_category (Banco de Circuitos) (15.43KB) (0.75%)
    414μs
    1 x beforeRenderModule mod_finder (Busca_inteligente) (6.39KB) (0.42%)
    231μs
    1 x afterLoad (85.98KB) (0.37%)
    203μs
    1 x Before Access::preloadComponents (all components) (33.5KB) (0.36%)
    197μs
    1 x beforeRenderRawModule mod_finder (Busca_inteligente) (5.9KB) (0.2%)
    113μs
    1 x afterRenderModule mod_articles_category (Banco de Circuitos) (5.39KB) (0.14%)
    79μs
    1 x afterRenderModule mod_finder (Busca_inteligente) (4.44KB) (0.12%)
    65μs
    1 x afterDispatch (2.25KB) (0.1%)
    56μs
    1 x After Access::getAssetRules (id:8 name:com_content) (7.36KB) (0.08%)
    43μs
    1 x Before Access::preloadPermissions (com_content) (1.57KB) (0.01%)
    7μs
23 statements were executed, 5 of which were duplicates, 18 unique13.87ms1.63MB
  • SELECT @@SESSION.sql_mode;31μs968B/libraries/src/Session/MetadataManager.php:184Copy
  • SELECT `session_id` FROM `incbmx_session` WHERE `session_id` = :session_id LIMIT 186μ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)195μs944BParams/libraries/src/Session/MetadataManager.php:260Copy
  • SELECT `id`,`rules` FROM `incbmx_viewlevels`48μ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` = :guest84μ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`304μ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)234μ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` = 010.07ms1.46MBParams/libraries/src/Access/Access.php:301Copy
  • SHOW FULL COLUMNS FROM `incbmx_assets`245μs2.02KB/libraries/vendor/joomla/database/src/Mysqli/MysqliDriver.php:587Copy
  • SELECT * FROM `incbmx_assets` WHERE `name` = 'com_content.article.2618'71μs912B/libraries/src/Table/Table.php:780Copy
  • SHOW FULL COLUMNS FROM `incbmx_content`284μs1.77KB/libraries/vendor/joomla/database/src/Mysqli/MysqliDriver.php:587Copy
  • UPDATE `incbmx_content` SET `hits` = (`hits` + 1) WHERE `id` = '2618'146μ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)153μs54.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`279μ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)249μs3.97KBParams/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`176μ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 ASC411μs6.06KBParams/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`257μs3.92KBParams/libraries/src/Categories/Categories.php:375Copy
  • SELECT `name`,`element` FROM `incbmx_extensions` WHERE `type` = 'plugin' AND `folder` = 'finder' AND `enabled` = 1133μs656B/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)76μs648B/administrator/components/com_finder/src/Indexer/Taxonomy.php:325Copy
  • SELECT * FROM `incbmx_schemaorg` WHERE `itemId` = :itemId AND `context` = :context77μ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)181μs54.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` = 177μs1.37KBParams/administrator/components/com_scheduler/src/Model/TasksModel.php:465Copy
  • warningassets - No asset found for com_content.article.2618, falling back to com_content
  • warningassets - No asset found for com_content.article.2618, falling back to com_content
  • warningassets - No asset found for com_content.article.2618, falling back to com_content
  • warningassets - No asset found for com_content.article.2618, falling back to com_content
  • warningassets - No asset found for com_content.article.2618, falling back to com_content
  • warningassets - No asset found for com_content.article.2618, falling back to com_content
  • warningassets - No asset found for com_content.article.2618, falling back to com_content
  • warningassets - No asset found for com_content.article.2618, falling back to com_content
  • warningassets - No asset found for com_content.article.2618, falling back to com_content
  • warningassets - No asset found for com_content.article.2618, falling back to com_content