Mostrando entradas con la etiqueta nano. Mostrar todas las entradas
Mostrando entradas con la etiqueta nano. Mostrar todas las entradas

martes, 22 de abril de 2025

Arduino nano - Radio SI7432 ALL BAND AM - FM - SSB

  Página principal

Arduino nano
Radio SI7432 ALL BAND
AM - FM - SSB

En el proyecto  https://github.com/pu2clr/SI4735  hay muchos ejemplo con el CHIP SI7432 .
Entre ellos existe uno SI473X_04_ALL_IN_ONE que recibe todas las banda y modulaciones.
Lo que hago es modificarlo para poder cambiar cualquier opción desde
un Rotary encoder.



En el primer ejemplo utilizo la librería Tiny4kOLED.h para manejar el OLED junto con Rotary.h para manejar el mando encoder.






En el segundo montaje utilizo una librería propia para manejar el OLED junto con 
Rotary.h para manejar el mando encoder.
Además quito mucha información de pantalla, que se puede ver directamente en el menú.
 



VIDEO

Programa1
programa2

Libreria SI4732
Rotary
Tiny4kOLED

Saludos.
Juan Galaz



Bibliografía:

https://github.com/pu2clr/SI4735
https://github.com/skathir38/Rotary



jueves, 24 de octubre de 2024

DCF77 - Generador de señal - Signal generator - Versión 2 - DS1302

  Página principal

DCF77
Generador de señal
Signal generator
Versión 2  - DS1302

Después de haber realizado el Generador de DCF77 con el arduino, me dí cuenta que algunos relojes no sincronizaba bien.
También me resultaba engorroso tener que
actualizar la hora mediante un ordenador, antes de emitir la señal DCF .
He visto que se podía mejorar el código del arduino y el circuito mediante:
-Mejorando el tiempo de interrupción de 0.1 Segundo. Me dí cuenta que ciertos relojes exigen alta precisión, de esta forma la mayoría de los relojes se sincronizan.
-Cambiando la resistencia de la señal DCF a 4K7.
-Eliminando la parte del modo del audio.
-Se coloca una variable en compilación #define SINCRO . Según el manual DCF, la señal de DCF debe sincronizarse con el flanco de bajada de la portadora. Funciona igual con sincronización que sin ella, por lo que lo dejo a gusto de cada uno.
-La resistencia R1 es de 100 ohmios, para que module al 20%, pero también funciona si se modula al 0%, para este caso debemos colocar la resistencia a 0 ohmios.
-He colocado un pulsador para las pruebas. Si durante el arranque se tiene pulsado, carga una fecha prefijada y no la carga del DS1302.  Fecha prefijada:  7:52:50   9/10/2024 .


Esquema realizado con https://easyeda.com.

Circuito montado.


Señales generadas.


La sincronización tarda entre 2 y 5 minutos. La distancia entre el circuito emisor y los radio relojes es de 80 cm.

También he creado un programa en Linux bajo consola para poner la fecha y la hora automáticamente.
./dcfSerie /dev/ttyUSB0

El programa en arduino admite una serie de ordenes:
HORA=

SEGUNDO=
MINUTO=
DIAMES=
DIASEMANA=  (Algunos relojes comprueban que sea correcto)
MES=
ANO=
PRINT
START
STOP
SAVE
LOAD

Durante el arranque del circuito, espera 15 antes de empezar a emitir señal.
En el tiempo de espera de 15 segundos, si se ejecuta el programa en consola, se actualiza la hora y la fecha en el DS1302.



Programa Arduino
Programa Linux

Espero que os haya gustado este pequeño circuito.


Saludos.
Juan Galaz



Bibliografía:


PTB-Mitteilungen_2009_Heft_3_en

http://www.brettoliver.org.uk/DCF77_Analyzer_Clock_Mk2/Arduino_DCF77_Analyzer_MK2.htm
https://ednieuw.home.xs4all.nl/Woordklok/DCF77/DCF77_Arduino.html
https://es.wikipedia.org/wiki/DCF77
https://j-rpm.com/2019/05/transmisor-experimental-dcf77/
http://www.redesmadrid.com/?page_id=4
Radio watch sync   en Google Play

miércoles, 10 de noviembre de 2021

TransistorTester para Arduino Nano y OLED SSD1306Z

  Página principal



Transistor Tester para Arduino Nano
OLED SSD1306Z
Traducido por SETA43


Navegando por internet, encontré un analizador de componentes llamado  TransistorTester, el autor era  Karl-Heinz Kübbeler .
Sobre este montaje, que en principio solo se había creado para analizar transistores, existían múltiples versiones.
La versión que he utilizado es 1.08.004, que en este caso no está creada por el autor,  está realizada para arduino.
Me he permitido el atrevimiento de traducir esta versión al español, solo son unas cuantas palabras.
También no se representaba bien los componentes en el OLED, lo he intentado arreglar como he podido.
He de comentar que me ha sorprendido lo sencillo del montaje, y lo útil que es.
Detecta perfectamente si es un transistor NPN o PNP, JFETs, Diodos, Condensadores, Resistencias. Y lo mas curioso es la forma automática de detectar los pin.

La versión original de TransistorTester está realizada sobre un ATMEGA328 y con un interruptor rotativo, no utiliza el arduino, además de existir múltiples versiones comerciales.






Condensador de 3.9nF  y   1uF



Ressistencias de 330 ,1K, 10K




Transistor BC109 y BD681



Detalle del circuito




PROGRAMA

Este es un montaje muy práctico, se lo recomiendo a todos los electrónicos, será muy útil en cualquier momento para chequear componentes.
Puede funcionar con la alimentación del USB del arduino, pero funciona mejor alimentando al pin Vin del arduino, que soporta hasta 12V.

Para una mejor funcionamiento deberíamos quitar la resistencia que está en el pin D13, es la que alimenta el LED de prueba.


Saludos.
Juan Galaz



Bibliografía:

https://github.com/kr4fty/Ardutester
https://www.sysadminsdecuba.com/2020/08/ardutester-tester-de-componentes-con-arduino/
https://create.arduino.cc/projecthub/mircemk/diy-super-simple-electronic-component-tester-234752
https://create.arduino.cc/projecthub/plouc68000/ardutester-v1-13-the-arduino-uno-transistor-tester-dbafb4

miércoles, 15 de junio de 2016

Teclado para acceso con contraseña. Arduino nano

Página principal



Teclado para acceso con contraseña
Arduino nano

xsetaseta@gmail.com


En este montaje realizo un circuito de autorización mediante teclado, con una contraseña de 4 dígitos.
La realización está hecha con arduino nano debido a que tiene dos entradas mas A6 y A7 , aunque solo se utilice la entrada A6 en modo analógico debido a que no funciona como entrada digital.
Se debe teclear el código de 4 dígitos y pulsar la tecla # .
Si nos equivocamos pulsamos la tecla * ,  borramos todos los dígitos introducidos.
Si no pulsamos ninguna tecla antes de 10 segundos todos los dígitos tecleados se borran.
Si nos equivocamos al introducir el código, los 4 led parpadean.
Si hemos introducido el código correcto el led verde se enciende durante 1 segundo.





Para ahorrar 3 resistencia he hecho una pequeña trampa, colocar una resistencia para los 4 diodos.





PROGRAMA




Hubiese sido fácil hacer una rutina para poder cambiar la contraseña, pero eso lo dejo para que vosotros trabajéis un poco.


Saludos.
Juan Galaz



jueves, 17 de diciembre de 2015

SERVER WEB CON ESP8266 Y ARDUINO NANO Servidor de temperatura ds18B20

Página principal

SERVER WEB CON ESP8266 Y ARDUINO NANO
Servidor de temperatura
ds18B20


Este montaje es la continuación de mi anterior montaje SERVER WEB CON ESP8266 Y ARDUINO MEGA .
Para entender este montaje conviene leer el anterior
Cuando realice el montaje con arduino Mega, siempre me quedó el motivo por el cual no funcionaba en un arduino normal.
Después de investigar, descubrí el motivo, y era la poca memoria RAM de que dispone el arduino normal.
Mirando por internet encontré la página  http://booleanbite.com/web/optimizacion-de-memoria-de-nuestro-codigo-de-arduino/ donde explicar la forma de optimizar la memoria RAM del arduino.
La primera es colocar delante de las cadenas que se impriman.    Serial.print(F("Hola Mundo"));
La segunda es utilizar prog_char en vez de char en cadenas de caracteres que no se vayan a modificar.
Lo que se consigue es que estas cadenas se almacenen en la memoria de programa, liberando RAM.
Otra de las cosas que he cambiado es utilizar cadenas de caracteres en vez de String , de esta forma se reduce bastante el tamaño del programa.
He utilizado alguna que otra trampa para adaptar señales TTL de 3.3V a 5V utilizando solo una resistencia de 330 ohmios.
He asumido que existe la resistencia de 1K entre las señales RX y TX del adaptador usb/serie a el arduino, y de esta forma poder conectar el ESP8266 al arduino, y de está forma poder utilizar la comunicación hardware del arduino.
Importante, mientras este conectado el ESP8266 al arduino, no se puede programar el arduino, por lo cual debeis desconectar los pin TX y RX del ESP8266 al programar el arduino.
Para obtener 3.3V he utilizado dos diodos en serie que reducen la tensión de 5V a 3.6V .
Para saber que IP tiene nuestro servidor de temperatura, y luego dejarlo como IP estática en nuestro router, hacemos un chequeo de nuestra red.


En Linux y como root.
nmap -sP 192.168.0.1-254

Starting Nmap 6.00 ( http://nmap.org ) at 2015-12-17 06:55 UCT
Nmap scan report for 192.168.0.1
Host is up (0.00079s latency).
MAC Address: xx:67:xx:19:D9:1A (Unknown)
Nmap scan report for 192.168.0.150
Host is up.
Nmap scan report for 192.168.0.151
Host is up (0.077s latency).
MAC Address: xx:91:xx:34:46:C3 (Hangzhou Yulong Conmunication Co.)
Nmap scan report for 192.168.0.160
Host is up (0.099s latency).
MAC Address: 18:FE:34:9C:CB:C1 (Unknown)
Nmap done: 254 IP addresses (4 hosts up) scanned in 48.12 seconds




 
Esquema del circuito.


Prototipo del circuito.


Montaje eléctrico.



Montaje eléctrico.


Si queremos ver lo que ocurre, debemos de conectar una consola (convertidor_ USB->serie_TTL).
Ping 10 RX y 11 TX.
WIFI_CONECTAR
_ok_AT+CWMODE=1
_error_setamodem2
_ok_setamodem2
_ok_AT+CWMODE=3
_ok_AT+CIFSR
AT+CIFSR 
192.168.4.1
192.168.0.157

OK

_ok_AT+CIPMUX=1
_ok_AT+CIPSERVER
_ok_AT+CIPSTO=15
FIN_WIFI
ERRORES de conexion=0
_ok_conectado
22,3 22,1 

Consola.


Visión de los distintos sensores (hasta 4) en un navegador.
El primer sensor está a temperatura ambiente, el segundo en el congelador.


PROGRAMA

Saludos.
Juan Galaz
Bibliografía:

SERVER WEB CON ESP8266 Y ARDUINO MEGA
http://granabot.es/modulo-wifi-esp8266/
http://www.prometec.net/arduino-wifi/
http://83.56.32.125/esp8266.html
http://seta43.duckdns.org/electro.html
http://arduino-pda-control.blogspot.com.es/
http://booleanbite.com/web/optimizacion-de-memoria-de-nuestro-codigo-de-arduino/