Es un pequeño amplificador con sólo dos transistores que puede ser útil en la bancada del probador o del reparador. Este circuito puede servir como seguidor de señales de audio, en la prueba de transductores tales como micrófonos, bobinas captadoras y cabezas grabadoras y aún como etapa de amplificación de radios experimentales o intercomunicadores.

   El circuito presentado se basa en un "super-transistor" Darlington BC517 cuya ganancia mínima es de 30 000 veces.

   En conjunto con un segundo transistor, tenemos una ganancia total más que suficiente para excitar un pequeño altavoz.

   Como el transistor en cuestión es de baja potencia hemos ganado pero no potencia, lo que significa que no debemos alimentar el circuito con más de 3 V o 2 pilas pequeñas.

   Sin embargo, con la elevada ganancia a baja tensión tenemos la posibilidad de llevar el conjunto a un montaje muy compacto y fácil de usar en la bancada.

   Pocos son los componentes usados ??y el altavoz puede incluso ser del tipo de 2,5 a 5 cm aprovechado de alguna radio transistorizada fuera de uso.

   No incluimos en el proyecto original el control de volumen, dada la baja potencia del circuito, pero puede ser fácilmente adaptado.

 

CARACTERÍSTICAS

Tensión de alimentación: 3 V

Potencia: 10 mW (tip.)

Impedancia de entrada: mayor que 100 k ohms

Número de transistores: 2

 

Como funciona

   El transistor Q1 funciona como preamplificador de audio en la configuración de emisor común, proporcionando así una buena ganancia de tensión.

   La señal de audio se lleva a la base de este transistor vía C1 y se retira de su colector directamente a la base de Q1.

   R1 y R2 deben ser dimensionados para determinar la corriente de reposo del circuito.

   La señal aplicada a la base de Q2 se amplifica de nuevo en el colector para excitación directa del pequeño altavoz.

   C2 desacopla la fuente que puede ser formada por dos pilas pequeñas.

   

MONTAJE

   En la figura 1 tenemos el diagrama completo del amplificador.

 

   Figura 1 - Diagrama del amplificador
   Figura 1 - Diagrama del amplificador

 

 

Como se trata de montaje muy simple, indicada incluso a los principiantes, recomendamos la utilización de un puente de terminales con la disposición mostrada en la figura 2.

  Figura 2 - Montaje en puente de terminales
  Figura 2 - Montaje en puente de terminales

 

   

El conjunto se puede instalar fácilmente en una pequeña caja plástica y para la entrada de señal se puede utilizar un cable blindado con un enchufe y dos garras jacaré.

   Los resistores son de 1/8 W con un 5% o más de tolerancia y los electrolíticos son para 6 V o más de tensión de trabajo.

   En lugar de Q1 podemos usar el BC547 o BCS49, pero no se indica ningún sustituto para Q2.

   La impedancia del altavoz no es crítica, pudiendo quedar entre 4 a 32 ohms, sin problemas.

 

PRUEBA Y USO

   Conecte el amplificador y aplique la señal en la entrada.

   La señal puede venir de un micrófono o de la salida de un preamplificador o incluso una radio.

   Si hay distorsión, incluso con bajo volumen de la fuente de señal, cambie la resistencia R2 que deberá tener valores en el rango de 100 a 470 k ohms.

   Comprobado el funcionamiento es sólo usar el aparato.

 

Semiconductores:

Q1 - BC548 o equivalente -transistor NPN de uso general

Q2 - BC517 - Transistores SID Darlington NPN

 

Resistores: (1/8 W, 5%)

R1 - 2,2 M ohms - (rojo, rojo, verde)

R2 - 220 k ohms - (rojo, rojo, amarillo)

R3 - 100 k ohms - (marrón, negro, amarillo)

 

Capacitores:

C1 - 10 uF - electrolítico

C2 - 100 uF - electrolítico

 

Varios:

FTE - 8 ohms - 5 cm - Altavoz común - ver texto

S1 - Interruptor simple

B1 - 3 V - 2 pilas

Puente de terminales, caja para montaje, jack de entrada, cable blindado de entrada, soporte de 2 pilas, hilos, soldadura, etc.

 

 

 

18.9MBMemory Usage50.03msRequest 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" => 1741913525 "last" => 1741913525...
registry
array:3 [ "data" => [] "initialized" => false "separator" => "." ]
user
array:21 [ "id" => 0 "name" => null "username" => null "email" => null "password" => "***r...
  • afterLoad (85.73KB) (204μs)
  • afterInitialise (1.14MB) (3.08ms)
  • afterRoute (179.16KB) (928μs)
  • beforeRenderComponent com_content (100.65KB) (417μs)
  • Before Access::preloadComponents (all components) (33.5KB) (256μs)
  • After Access::preloadComponents (all components) (107.06KB) (834μs)
  • Before Access::preloadPermissions (com_content) (1.57KB) (10μs)
  • After Access::preloadPermissions (com_content) (16.19MB) (28.98ms)
  • Before Access::getAssetRules (id:22237 name:com_content.article.25987) (514.65KB) (885μs)
  • After Access::getAssetRules (id:22237 name:com_content.article.25987) (7.38KB) (53μs)
  • afterRenderComponent com_content (382.15KB) (6.64ms)
  • afterDispatch (2.25KB) (42μs)
  • beforeRenderRawModule mod_articles_category (Banco de Circuitos) (359.33KB) (1.74ms)
  • afterRenderRawModule mod_articles_category (Banco de Circuitos) (79.43KB) (276μs)
  • beforeRenderRawModule mod_finder (Busca_inteligente) (5.9KB) (85μs)
  • afterRenderRawModule mod_finder (Busca_inteligente) (64.98KB) (1.1ms)
  • beforeRenderModule mod_articles_category (Banco de Circuitos) (10.1KB) (644μs)
  • afterRenderModule mod_articles_category (Banco de Circuitos) (5.14KB) (62μs)
  • beforeRenderModule mod_finder (Busca_inteligente) (6.14KB) (207μs)
  • afterRenderModule mod_finder (Busca_inteligente) (4.75KB) (71μs)
  • afterRender (257.73KB) (3.4ms)
  • 1 x After Access::preloadPermissions (com_content) (16.19MB) (57.92%)
    28.98ms
    1 x afterRenderComponent com_content (382.15KB) (13.28%)
    6.64ms
    1 x afterRender (257.73KB) (6.8%)
    3.40ms
    1 x afterInitialise (1.14MB) (6.16%)
    3.08ms
    1 x beforeRenderRawModule mod_articles_category (Banco de Circuitos) (359.33KB) (3.47%)
    1.74ms
    1 x afterRenderRawModule mod_finder (Busca_inteligente) (64.98KB) (2.2%)
    1.10ms
    1 x afterRoute (179.16KB) (1.86%)
    928μs
    1 x Before Access::getAssetRules (id:22237 name:com_content.article.25987) (514.65KB) (1.77%)
    885μs
    1 x After Access::preloadComponents (all components) (107.06KB) (1.67%)
    834μs
    1 x beforeRenderModule mod_articles_category (Banco de Circuitos) (10.1KB) (1.29%)
    644μs
    1 x beforeRenderComponent com_content (100.65KB) (0.83%)
    417μs
    1 x afterRenderRawModule mod_articles_category (Banco de Circuitos) (79.43KB) (0.55%)
    276μs
    1 x Before Access::preloadComponents (all components) (33.5KB) (0.51%)
    256μs
    1 x beforeRenderModule mod_finder (Busca_inteligente) (6.14KB) (0.41%)
    207μs
    1 x afterLoad (85.73KB) (0.41%)
    204μs
    1 x beforeRenderRawModule mod_finder (Busca_inteligente) (5.9KB) (0.17%)
    85μs
    1 x afterRenderModule mod_finder (Busca_inteligente) (4.75KB) (0.14%)
    71μs
    1 x afterRenderModule mod_articles_category (Banco de Circuitos) (5.14KB) (0.12%)
    62μs
    1 x After Access::getAssetRules (id:22237 name:com_content.article.25987) (7.38KB) (0.11%)
    53μs
    1 x afterDispatch (2.25KB) (0.08%)
    42μs
    1 x Before Access::preloadPermissions (com_content) (1.57KB) (0.02%)
    10μs
21 statements were executed, 5 of which were duplicates, 16 unique18.59ms1.57MB
  • SELECT @@SESSION.sql_mode;32μs968B/libraries/src/Session/MetadataManager.php:184Copy
  • SELECT `session_id` FROM `incbmx_session` WHERE `session_id` = :session_id LIMIT 176μ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)112μs944BParams/libraries/src/Session/MetadataManager.php:260Copy
  • SELECT `id`,`rules` FROM `incbmx_viewlevels`52μ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` = :guest63μ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`307μ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)648μ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` = 014.38ms1.46MBParams/libraries/src/Access/Access.php:301Copy
  • SHOW FULL COLUMNS FROM `incbmx_content`390μs2.39KB/libraries/vendor/joomla/database/src/Mysqli/MysqliDriver.php:587Copy
  • UPDATE `incbmx_content` SET `hits` = (`hits` + 1) WHERE `id` = '25987'155μ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)233μ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`264μ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)359μ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`256μ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 ASC478μ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`245μs3.92KBParams/libraries/src/Categories/Categories.php:375Copy
  • SELECT `name`,`element` FROM `incbmx_extensions` WHERE `type` = 'plugin' AND `folder` = 'finder' AND `enabled` = 1170μ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)99μ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)149μ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` = 162μs1.37KBParams/administrator/components/com_scheduler/src/Model/TasksModel.php:465Copy