Este proyecto puede servir de base para un interesante instrumento de localización de fallas o aún como control para la temperatura de componentes o sectores de un aparato electrónico. Ajustado adecuadamente, este circuito hace encender un LED si la temperatura supera un cierto valor y otro se cae por debajo de este valor.

Nuestro proyecto no es más que un simple comparador de tensiones conectado a un divisor resistivo que tiene por uno de los brazos un sensor de temperatura del tipo NTC.

Equilibrio del circuito no se enciende ningún LED. Si el circuito se desequilibra, por el cambio de resistencia del sensor, uno de los LEDs se enciende, conforme la tensión de salida del circuito integrado aumenta o disminuye.

La ganancia y, por lo tanto, la respuesta del circuito, puede ser cambiada en función de la retroalimentación.

El circuito se alimenta con pilas comunes, y para operar como un instrumento puede instalarse en una caja plástica con el sensor en la punta de un lápiz usado.

El sensor será entonces apoyado en un componente que se desee verificar un posible calentamiento, y que no sea sensible al tacto.

 

Características:

Tensión de alimentación: 6 V

Consumo: 20 mA (tip.)

Rango de temperaturas: -40 a 125 ° C

En la figura 1 tenemos el diagrama completo de la punta térmica.

 

Figura 1 - Diagrama completo de la punta térmica
Figura 1 - Diagrama completo de la punta térmica

 

Como se ha dicho en la introducción, tenemos un CA3140 (amplificador operacional) utilizado como comparador de tensión.

Los resistores R2 y R3 forman un divisor que proporciona la tensión de referencia, mientras que P1, R1 y el sensor (NTC) forman el circuito de entrada.

Cuando la temperatura aumenta, la resistencia del sensor cae, y con ello disminuye la tensión en el pin 3 del comparador.

Si esta tensión es inicialmente ajustada para ser igual a la referencia dada por el divisor R4 y R5, situación en que los dos LEDs quedan apagados, tenemos el LED. Pasando a la polarización directa y encendiendo.

Por otro lado, si la temperatura disminuye y la resistencia del sensor aumenta, tenemos un aumento en la tensión del perno 3 del comparador, y su salida va al nivel alto, polarizando el LED2 en el sentido de conducir la corriente y, por lo tanto, encenderse.

La respuesta del circuito es dada por la retroalimentación de R6, que puede tener valores entre 10 k ohmios y 2,2 M ohmios.

En la figura 2 tenemos la disposición de los componentes en una placa de circuito impreso.

 

Figura 2 - Placa para el montaje
Figura 2 - Placa para el montaje

 

Sugerimos el uso de zócalo para el circuito integrado.

El NTC es de 10 k ohms y se debe fijar en la punta de un bolígrafo fuera de uso del tipo bolígrafo, para facilitar el uso como sensor de calefacción de componentes.

No es necesario utilizar cable blindado, pero es conveniente aislar los puntos de conexión.

Para probar el aparato, ajuste inicialmente P1 para que los dos LED se apaguen. Si desea un ajuste más crítico, aumente el valor de R6.

A continuación, sujete entre los dedos el sensor para calentarlo. Uno de los LED debe encenderse.

Ahora, apoyando el sensor en un objeto frío, el otro LED debe encenderse.

Para usar es sólo ajustar P1 para que los dos LEDs queden apagados a la temperatura considerada normal, y verificar cuál de los LEDs se enciende, en una eventual variación de esta temperatura.

Para instalar el sensor a gran distancia del aparato, utilice tío blindado.

 

Semiconductores:

Cl1 - CA3140 - circuito integrado amplificador operacional J-FET

LED1, LED2 - LEDs comunes

 

Resistores (1/8 W, 5%):

R2 - 4,7 k ohms

R2, R3 - 22 k ohms

R4, R5 - 1 k ohms

P1 - trimpot de 47 k ohms

 

Varios:

NTC - NTC común de 10 k ohms

C1 - 100 uF - capacitor electrolítico de 12 V

S1 - Interruptor simple

B1 - 6 V - 4 pilas comunes

Placa de circuito impreso, soporte de pilas, caja para montaje, hilos,

Soldadura, etc.

 

Settings18.918MBMemory Usage42.16msRequest Duration
Theme
Open Button Position
Hide Empty Tabs
Autoshow
Reset to defaults
Joomla! Version5.3.2
PHP Version8.3.23
Identityguest
Response200
Templatecassiopeia
Database
Server
mysql
Version
10.5.27-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" => 1752518800 "last" => 1752518800...
registry
array:3 [ "data" => [] "initialized" => false "separator" => "." ]
user
array:21 [ "id" => 0 "name" => null "username" => null "email" => null "password" => "***r...
  • afterLoad (83.65KB) (972μs)
  • afterInitialise (1.13MB) (5.2ms)
  • afterRoute (179.86KB) (1.41ms)
  • beforeRenderComponent com_content (101.14KB) (530μs)
  • Before Access::preloadComponents (all components) (33.13KB) (329μs)
  • After Access::preloadComponents (all components) (113.52KB) (374μs)
  • Before Access::preloadPermissions (com_content) (1.57KB) (9μs)
  • After Access::preloadPermissions (com_content) (16.22MB) (19.44ms)
  • Before Access::getAssetRules (id:2605 name:com_content.article.3817) (514.65KB) (679μs)
  • After Access::getAssetRules (id:2605 name:com_content.article.3817) (7.38KB) (45μs)
  • afterRenderComponent com_content (350.94KB) (5.84ms)
  • afterDispatch (2.25KB) (53μs)
  • beforeRenderRawModule mod_articles_category (Banco de Circuitos) (358.62KB) (1.68ms)
  • afterRenderRawModule mod_articles_category (Banco de Circuitos) (79.5KB) (403μs)
  • beforeRenderRawModule mod_finder (Busca_inteligente) (5.9KB) (92μs)
  • afterRenderRawModule mod_finder (Busca_inteligente) (54.63KB) (932μs)
  • beforeRenderModule mod_articles_category (Banco de Circuitos) (9.27KB) (570μs)
  • afterRenderModule mod_articles_category (Banco de Circuitos) (5.47KB) (81μs)
  • beforeRenderModule mod_finder (Busca_inteligente) (6.64KB) (189μs)
  • afterRenderModule mod_finder (Busca_inteligente) (4.44KB) (47μs)
  • afterRender (250.05KB) (3.15ms)
  • 1 x After Access::preloadPermissions (com_content) (16.22MB) (46.11%)
    19.44ms
    1 x afterRenderComponent com_content (350.94KB) (13.85%)
    5.84ms
    1 x afterInitialise (1.13MB) (12.33%)
    5.20ms
    1 x afterRender (250.05KB) (7.46%)
    3.15ms
    1 x beforeRenderRawModule mod_articles_category (Banco de Circuitos) (358.62KB) (3.99%)
    1.68ms
    1 x afterRoute (179.86KB) (3.35%)
    1.41ms
    1 x afterLoad (83.65KB) (2.31%)
    972μs
    1 x afterRenderRawModule mod_finder (Busca_inteligente) (54.63KB) (2.21%)
    932μs
    1 x Before Access::getAssetRules (id:2605 name:com_content.article.3817) (514.65KB) (1.61%)
    679μs
    1 x beforeRenderModule mod_articles_category (Banco de Circuitos) (9.27KB) (1.35%)
    570μs
    1 x beforeRenderComponent com_content (101.14KB) (1.26%)
    530μs
    1 x afterRenderRawModule mod_articles_category (Banco de Circuitos) (79.5KB) (0.96%)
    403μs
    1 x After Access::preloadComponents (all components) (113.52KB) (0.89%)
    374μs
    1 x Before Access::preloadComponents (all components) (33.13KB) (0.78%)
    329μs
    1 x beforeRenderModule mod_finder (Busca_inteligente) (6.64KB) (0.45%)
    189μs
    1 x beforeRenderRawModule mod_finder (Busca_inteligente) (5.9KB) (0.22%)
    92μs
    1 x afterRenderModule mod_articles_category (Banco de Circuitos) (5.47KB) (0.19%)
    81μs
    1 x afterDispatch (2.25KB) (0.13%)
    53μs
    1 x afterRenderModule mod_finder (Busca_inteligente) (4.44KB) (0.11%)
    47μs
    1 x After Access::getAssetRules (id:2605 name:com_content.article.3817) (7.38KB) (0.11%)
    45μs
    1 x Before Access::preloadPermissions (com_content) (1.57KB) (0.02%)
    9μs
21 statements were executed, 5 of which were duplicates, 16 unique11.22ms1.58MB
  • SELECT @@SESSION.sql_mode;33μs968B/libraries/src/Session/MetadataManager.php:184Copy
  • SELECT `session_id` FROM `incbmx_session` WHERE `session_id` = :session_id LIMIT 181μ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)199μs944BParams/libraries/src/Session/MetadataManager.php:260Copy
  • SELECT `id`,`rules` FROM `incbmx_viewlevels`71μ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` = :guest76μ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`230μs20.2KBParams/libraries/src/Categories/Categories.php:375Copy
  • SELECT `alias` FROM `incbmx_content` WHERE `id` = :id70μs1.31KBParams/components/com_content/src/Service/Router.php:289Copy
  • 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)231μ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` = 08.1ms1.48MBParams/libraries/src/Access/Access.php:301Copy
  • SHOW FULL COLUMNS FROM `incbmx_content`326μs1.77KB/libraries/vendor/joomla/database/src/Mysqli/MysqliDriver.php:539Copy
  • UPDATE `incbmx_content` SET `hits` = (`hits` + 1) WHERE `id` = '3817'134μ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)154μ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`178μ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)217μ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`163μ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 ASC385μ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`167μs5.17KBParams/libraries/src/Categories/Categories.php:375Copy
  • SELECT `title` FROM `incbmx_finder_taxonomy` WHERE `parent_id` = 1 AND `state` = 1 AND `access` IN (1,5)101μs648B/administrator/components/com_finder/src/Indexer/Taxonomy.php:325Copy
  • SELECT * FROM `incbmx_schemaorg` WHERE `itemId` = :itemId AND `context` = :context61μs1.55KBParams/plugins/system/schemaorg/src/Extension/Schemaorg.php:406Copy
  • 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)164μ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` = 171μs1.37KBParams/administrator/components/com_scheduler/src/Model/TasksModel.php:517Copy