Vox es el nombre dado a un interruptor accionado por sonido. Podemos usarlo en automatismos, alarmas y otras aplicaciones en las que se requiere un comando de voz. El circuito es simple y sensible.

   En este artículo describimos un interesante proyecto de Vox que dispara un relé al recibir un sonido por un micrófono sensible. El circuito no tiene traba y su alimentación puede ser hecha con tensiones de 9 a 12 V, conforme el relé usado.

   La carga máxima controlada dependerá únicamente de los contactos del relé utilizado.

 

 

Como funciona

    En el paso de entrada tenemos un micrófono de electreto excitando un transistor amplificador. El transistor tiene un control de sensibilidad que consiste en un potenciómetro conectado a su base. La señal amplificada del transistor se lleva a un amplificador operacional 741 cuya ganancia depende de R6.

   La salida del amplificador operacional se aplica a un transistor a través de un diodo. El diodo se polariza de tal forma que el transistor conduce en presencia de las señales, cerrando los contactos del relé.

   Un capacitor en la base del transistor de accionamiento proporciona una cierta suavidad de accionamiento, evitando repiques o accionamiento del ruido rápido.

   

 

Montaje

   En la figura 1 tenemos el diagrama completo del Vox.

 

   Figura 1 - Diagrama del Vox
   Figura 1 - Diagrama del Vox | Clique na imagem para ampliar |

 

   

En la figura 2 tenemos el montaje realizado en una matriz de contactos.

 

 

   Figura 2 - Montaje en matriz de contactos
   Figura 2 - Montaje en matriz de contactos | Clique na imagem para ampliar |

 

   Para un montaje en placa de circuito impreso se puede utilizar el patrón mostrado en la figura 3 como referencia.

 

 

   Figura 3 - Placa de circuito impreso para el montaje
   Figura 3 - Placa de circuito impreso para el montaje | Clique na imagem para ampliar |

 

   

El montaje prevé el uso de relés basados ​​en DIL, pero se pueden utilizar otros tipos de relés. En el montaje, observe las posiciones del circuito integrado y de los transistores, así como la polaridad de diodos y capacitores electrolíticos.

   Los resistores son de 1/8 W y los capacitores como se indica en la lista de materiales. El resistor R será necesaria si se utiliza relé de 6 V y la alimentación es de 9 V. Su valor estará entre 10 y 22 ohms típicamente. También se pueden utilizar relés de 5 V con corriente de hasta 100 mA.

   En la figura 4 mostramos cómo conectar un LED para la realización de las pruebas de accionamiento.

 

   Figura 4 - Accionando un LED
   Figura 4 - Accionando un LED

 

   

Para probar, basta hablar delante del micrófono y ajustar el potenciómetro de ganancia para que el relé accione con el sonido.

   

 

Lista de material

CI-1 - 741 - circuito integrado

Q1 - BC548 - transistores NPN de uso general

Q2 - BC558 - transistores PNP de uso general

D1, D2 - 1N4148 - diodos de uso general

K1 - Relé sensible de 6 a 12 V.

MIC - micrófono de eletreto

P1 - 4,7 M ohms - potenciómetro

S1 - Interruptor simple

B1 - 9 a 12 V - batería o fuente

C1 - 100 nF - cerámico o poliéster

C2 - 47 uF x 12 V - electrolítico

C3 - 100 uF x 12 V - electrolítico

R1 - 4,7 j ohms x 1/8 W-resistor - amarillo, violeta, rojo

R2, R3 - 1 M ohms x 1/8 W- resistores - marrón, negro, verde

R4 - 22 k ohms x 1/8 W - resistor - rojo, rojo, naranja

R5 - 10 k ohms x 1/8 W - resistor - marrón, negro, naranja

R6 - 4,7 M ohms x 1/8 W - resistor - amarillo, violeta, azul

R7 - 3,3 k ohms x 1/8 W - resistor - naranja, naranja, rojo

Ver texto

Varios:

Placa de circuito impreso o matriz de contacto, soporte de pilas, fuente o conector de batería, hilos, soldadura, etc.

   

 

 

Settings18.936MBMemory Usage58.3msRequest 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" => 1753408704 "last" => 1753408704...
registry
array:3 [ "data" => [] "initialized" => false "separator" => "." ]
user
array:21 [ "id" => 0 "name" => null "username" => null "email" => null "password" => "***r...
  • afterLoad (83.57KB) (308μs)
  • afterInitialise (1.13MB) (4.06ms)
  • afterRoute (179.85KB) (1.14ms)
  • beforeRenderComponent com_content (100.8KB) (458μs)
  • Before Access::preloadComponents (all components) (33.13KB) (202μs)
  • After Access::preloadComponents (all components) (113.53KB) (851μs)
  • Before Access::preloadPermissions (com_content) (1.57KB) (9μs)
  • After Access::preloadPermissions (com_content) (16.24MB) (33.79ms)
  • Before Access::getAssetRules (id:27612 name:com_content.article.31245) (514.65KB) (1.19ms)
  • After Access::getAssetRules (id:27612 name:com_content.article.31245) (7.38KB) (35μs)
  • afterRenderComponent com_content (356.73KB) (7.03ms)
  • afterDispatch (2.25KB) (51μs)
  • beforeRenderRawModule mod_articles_category (Banco de Circuitos) (422.56KB) (2.27ms)
  • afterRenderRawModule mod_articles_category (Banco de Circuitos) (15.5KB) (359μs)
  • beforeRenderRawModule mod_finder (Busca_inteligente) (5.9KB) (101μs)
  • afterRenderRawModule mod_finder (Busca_inteligente) (54.31KB) (1.12ms)
  • beforeRenderModule mod_articles_category (Banco de Circuitos) (9.27KB) (755μs)
  • afterRenderModule mod_articles_category (Banco de Circuitos) (5.47KB) (77μs)
  • beforeRenderModule mod_finder (Busca_inteligente) (6.64KB) (248μs)
  • afterRenderModule mod_finder (Busca_inteligente) (4.75KB) (60μs)
  • afterRender (257.23KB) (4.06ms)
  • 1 x After Access::preloadPermissions (com_content) (16.24MB) (57.95%)
    33.79ms
    1 x afterRenderComponent com_content (356.73KB) (12.06%)
    7.03ms
    1 x afterRender (257.23KB) (6.96%)
    4.06ms
    1 x afterInitialise (1.13MB) (6.96%)
    4.06ms
    1 x beforeRenderRawModule mod_articles_category (Banco de Circuitos) (422.56KB) (3.9%)
    2.27ms
    1 x Before Access::getAssetRules (id:27612 name:com_content.article.31245) (514.65KB) (2.05%)
    1.19ms
    1 x afterRoute (179.85KB) (1.96%)
    1.14ms
    1 x afterRenderRawModule mod_finder (Busca_inteligente) (54.31KB) (1.92%)
    1.12ms
    1 x After Access::preloadComponents (all components) (113.53KB) (1.46%)
    851μs
    1 x beforeRenderModule mod_articles_category (Banco de Circuitos) (9.27KB) (1.3%)
    755μs
    1 x beforeRenderComponent com_content (100.8KB) (0.79%)
    458μs
    1 x afterRenderRawModule mod_articles_category (Banco de Circuitos) (15.5KB) (0.62%)
    359μs
    1 x afterLoad (83.57KB) (0.53%)
    308μs
    1 x beforeRenderModule mod_finder (Busca_inteligente) (6.64KB) (0.43%)
    248μs
    1 x Before Access::preloadComponents (all components) (33.13KB) (0.35%)
    202μs
    1 x beforeRenderRawModule mod_finder (Busca_inteligente) (5.9KB) (0.17%)
    101μs
    1 x afterRenderModule mod_articles_category (Banco de Circuitos) (5.47KB) (0.13%)
    77μs
    1 x afterRenderModule mod_finder (Busca_inteligente) (4.75KB) (0.1%)
    60μs
    1 x afterDispatch (2.25KB) (0.09%)
    51μs
    1 x After Access::getAssetRules (id:27612 name:com_content.article.31245) (7.38KB) (0.06%)
    35μs
    1 x Before Access::preloadPermissions (com_content) (1.57KB) (0.02%)
    9μs
21 statements were executed, 5 of which were duplicates, 16 unique14.49ms1.58MB
  • SELECT @@SESSION.sql_mode;40μs968B/libraries/src/Session/MetadataManager.php:184Copy
  • SELECT `session_id` FROM `incbmx_session` WHERE `session_id` = :session_id LIMIT 1100μ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)166μs944BParams/libraries/src/Session/MetadataManager.php:260Copy
  • SELECT `id`,`rules` FROM `incbmx_viewlevels`58μ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` = :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`249μs20.2KBParams/libraries/src/Categories/Categories.php:375Copy
  • SELECT `alias` FROM `incbmx_content` WHERE `id` = :id87μ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)673μ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.6ms1.48MBParams/libraries/src/Access/Access.php:301Copy
  • SHOW FULL COLUMNS FROM `incbmx_content`413μs1.77KB/libraries/vendor/joomla/database/src/Mysqli/MysqliDriver.php:539Copy
  • UPDATE `incbmx_content` SET `hits` = (`hits` + 1) WHERE `id` = '31245'119μ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)174μ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)277μ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`190μ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 ASC445μ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`186μ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)96μs648B/administrator/components/com_finder/src/Indexer/Taxonomy.php:325Copy
  • SELECT * FROM `incbmx_schemaorg` WHERE `itemId` = :itemId AND `context` = :context62μ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)204μ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` = 167μs1.37KBParams/administrator/components/com_scheduler/src/Model/TasksModel.php:517Copy