En este tutorial, te sumergirás en las profundidades de este increíble dispositivo y descubrirás su potencial ilimitado en la generación de señales y frecuencias.
Acompáñame mientras exploramos todas las funciones y características del módulo SI5351, desde su capacidad para generar múltiples frecuencias con una precisión asombrosa hasta su versatilidad en aplicaciones como sintetizadores de frecuencia, radios definidos por software y proyectos de comunicación.
Si eres un principiante en el tema o un experto en la materia, esta guía completa te proporcionará los conocimientos necesarios para dominar el módulo SI5351. Aprenderás cómo configurarlo, controlarlo a través de un arduino y aprovechar al máximo sus capacidades.
No importa si estás interesado en la electrónica, la radio afición o simplemente en explorar nuevas tecnologías, este video te mostrará cómo el módulo SI5351 puede potenciar tus proyectos y llevar tu creatividad al siguiente nivel.
Prepárate para sumergirte en un viaje emocionante de descubrimiento y aprendizaje. ¡No te pierdas esta oportunidad de desbloquear todo el potencial del módulo SI5351!
Tal vez pueda interesarte proyectos en arduino, pic, robótica, telecomunicaciones, suscribete en http://www.youtube.com/user/carlosvolt?sub_confirmation=1 mucho videos con código fuentes completos y diagramas
¿Dónde comprar los componentes ?
Módulo SI5351
Arduino pro micro
Display Oled sh1106
Componentes electrónicos
Arduino Pro Micro
Aquí lo puedes comprar https://ebay.us/3uGGbj
El Pro Micro es similar al arduino Mini Pro excepto con un ATMEGA32U4 a bordo. Este chip hace la gran diferencia ya que ademas puede ser utilizado como dispositivo de interfaz humana. El transceptor USB dentro del 32U4 nos permite añadir conectividad USB a bordo y acabar con voluminosos interfaz USB externo. Esta pequeña tarjeta hace todas las funciones Arduino con las que se está familiarizado con: 4 canales de 10-bit ADC, 5 pines PWM, 12 DIO, así como hardware conexiones serie Rx y Tx. Funcionando a 16 MHz y 5 V. Este pequeño microcontrolador puede ir en cualquier lugar. Hay un regulador de tensión a bordo para que pueda aceptar una tensión de hasta 12V.
- 12 Pines digitales I/O (5 PWM)
- 4 Pines de entrada analógicos (10 bit c/u)
- Tensión de entrada 5-12V (Posee regulador interno)
- Tensión de salida: 5v
- Corriente máxima de salida total 150mA
- ATMega 32U4 funcionando a 5V/16MHz
- Apoyado bajo Arduino IDE v1.0.1
- Conector micro-USB para la programación
- 4 pines x ADC de 10 bits
- Rx y Tx Hardware Conexiones en serie
- 12 salidas/entradas digitales de las cuales 5 pueden ser PWM.
- Dimensiones: 3.31cm X 1.78 cm
Módulo SI5351
PinOut
Aquí lo puedes comprar https://ebay.us/9lH5Dw
- VCC: Pin de alimentación. Debe recibir una fuente de alimentación de 3.3V o 5V, según la especificación del módulo.
- GND: Pin de tierra. Debe estar conectado al terminal de tierra del sistema o fuente de alimentación.
- SDA: Línea de datos bidireccional para la comunicación I2C (Inter-Integrated Circuit). Este pin se utiliza para enviar y recibir datos desde y hacia el módulo SI5351.
- SCL: Línea de reloj para la comunicación I2C. Este pin proporciona el pulso de reloj para sincronizar la transmisión de datos entre el dispositivo maestro y el módulo SI5351.
- CLK0, CLK1, CLK2: Estos pines son salidas de señales de reloj configurables del módulo SI5351. Puedes utilizarlos para generar diferentes frecuencias y formas de onda según tus necesidades.
- MS0, MS1, MS2: Estos pines son pines de selección de banco de registros para la configuración del módulo SI5351. Establecen el banco de registros al que accede el bus I2C.
El Si5351 es un generador de reloj de frecuencia programable (PLL) producido por Silicon Labs. Es ampliamente utilizado en proyectos de electrónica y en aplicaciones de radio frecuencia (RF), como en la construcción de osciladores, sintetizadores de frecuencia, radios definidos por software (SDR) y otros proyectos que requieren una fuente de señal de alta precisión y estabilidad.
El Si5351 tiene la capacidad de generar tres señales de reloj independientes con frecuencias que van desde unos pocos kilohertz hasta unos pocos cientos de megahertz, lo que lo hace adecuado para una amplia gama de aplicaciones. Además, es programable a través de una interfaz de comunicación I2C, lo que permite a los diseñadores ajustar fácilmente la frecuencia y la fase de la señal de salida de manera precisa y rápida.
Generador De Reloj Si5351a – 8 Khz A 160 Mhz + 3 conectores SMA hembra
Este módulo tiene una referencia de cristal de 25 MHz de precisión y un PLL interno y divisores, por lo que puede generar casi cualquier frecuencia, desde <8 KHz hasta más de 160 MHz. El generador de reloj Si5351A es un generador de reloj I2C. Utiliza el reloj de precisión a bordo para controlar múltiples PLL y divisores de reloj utilizando las instrucciones I2C. Al configurar el PLL y los divisores puede crear frecuencias precisas y arbitrarias. Hay tres salidas independientes, y cada una puede tener una frecuencia diferente. Las salidas son 3Vpp, ya sea a través de un encabezado compatible con el tablero o para el trabajo de RF, un conector SMA opcional. Ponemos este pequeño y práctico chip en su propia placa de circuito impreso, con un regulador LDO de 3.3V para que pueda alimentarse desde 3-5VDC. También colocamos circuitos de cambio de nivel en las líneas I2C para que pueda usar este chip de forma segura con lógica de 3V o 5V.
Conector Ficha SMA Hembra Para PCB Adaptador de RF Recto
– Serie: SMA
– Género: Hembra
– Tipo: tornillo exterior agujero interior
– Impedancia: 50 Ohm
– Frecuencia: 0 ~ 6 GHz
– Material del conector: cobre
– Longitud: 13mm
– Longitud de la puntada: 4mm
Aplicaciones
- HDTV, DVD/Blu-ray, decodificador
- Equipo de audio/video, juegos
- Impresoras, escáneres, proyectores
- Instrumentación portátil
- Puertas de enlace residenciales
- Redes/comunicación
- Servidores, almacenamiento
- Reemplazo de XO
Pines hembra
Display oled sh1106
Aquí lo puedes comprar https://ebay.us/PruK9V
Se trata de un módulo de pantalla OLED monocromática DE 128×64 puntos con interface I2C .Que presenta varias ventajas en comparación con pantallas LCD, y podemos destacar su alto brillo, un muy buen contraste, un ángulo de visión más amplio, y bajo consumo de energía. ES compatible con Arduino Rasberry Pi y microcontroladores PIC entre otros. Trabaja con niveles lógicos de 3.3V a 5V tiene un angulo de visión mayor a los 160 grados. el Tamaño de la pantalla es de 1,3 pulgadas. Se alimenta con un voltaje de 3.3V a 5V Se lo puede usar en aplicaciones como relojes inteligentes, MP3, termómetros, instrumentos, y proyectos varios, etc.
Características
- Interface: I2C(3.3V / 5V logic level)
- Resolution: 128 x 64
- Angle of view: >160 degree
- Display color: Blue
- Display size: 1.3 inch
- Driver IC: SH1106
- Power supply: DC 3.3V~5V
- Operating temperature: -20~70’C
- Application: smart watch, MP3, thermometer, instruments, DIY projects, etc.
17 pulsadores
Un zócalo para arduino pro micro
Diagrama electrónico
PCB
Para mandar a fabricar este pcb ve a https://www.pcbway.com/project/shareproject/Exploring_the_potential_of_the_SI5351_module_in_electronic_projects_005127dd.html
Y selecciona Add to Cart
Código Fuente
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 |
#include <Keypad.h> #include "si5351.h" #include "Wire.h" #include "U8g2lib.h"//Librería para el control del display oled U8G2_SH1106_128X64_NONAME_F_HW_I2C u8g2(U8G2_R0, /* reset=*/ U8X8_PIN_NONE); Si5351 si5351; float f1 = 0ULL; float f2 = 0ULL; String freq = "SETEA FREC"; //String botonSet = ""; const byte ROWS = 4; //cuatro filas const byte COLS = 4; //cuatro columnas //definimos los caracteres del teclado char hexaKeys[ROWS][COLS] = { {'1','2','3','4'}, {'5','6','7','8'}, {'9','0','A','B'}, {'C','D','E','F'} }; byte rowPins[ROWS] = {4, 6, 7, 8}; //conectarse a las salidas de pines de fila del teclado byte colPins[COLS] = {9, 10, 14, 15}; //conectarse a las salidas de pines de la columna del teclado //inicializar una instancia de la clase NewKeypad Keypad customKeypad = Keypad( makeKeymap(hexaKeys), rowPins, colPins, ROWS, COLS); void setup(){ u8g2.begin();//Inicializamos el display oled bool i2c_found; // Iniciar el módulo Si5351 i2c_found = si5351.init(SI5351_CRYSTAL_LOAD_8PF, 0, 0); oled();//Llamamos a la función oled para mostra datos en el display } void loop(){ char customKey = customKeypad.getKey();//Obtenemos la tecla que precionamos if (customKey == '1'){ f1= 358205600ULL;//Frecuencia f2 = f1 - 87400ULL;//Corrección de frecuencia // Serial.println(" Herz"); si5351.set_freq(f2, SI5351_CLK0); freq = f1; oled();//Llama a la función oled para mostrar la frecuencia en el display } if (customKey == '2'){ f1= 14450000000ULL;//Frecuencia f2 = f1 - 1896000ULL;//Corrección de frecuencia si5351.set_freq(f2, SI5351_CLK0); freq = f1; oled();//Llama a la función oled para mostrar la frecuencia en el display } if (customKey == '3'){ f1= 14500000000ULL;//Frecuencia f2 = f1 - 1896000ULL;//Corrección de frecuencia si5351.set_freq(f2, SI5351_CLK0); freq = f1; oled();//Llama a la función oled para mostrar la frecuencia en el display } if (customKey == '4'){ f1= 14650000000ULL;//Frecuencia f2 = f1 - 1898000ULL;//Corrección si5351.set_freq(f2, SI5351_CLK0);//Seteo de la frecuencia en el CLOCK0 freq = f1; oled();//Llama a la función oled para mostrar la frecuencia en el display } if (customKey == '5'){ f1= 535400000ULL;//Frecuencia f2 = f1 - 109000ULL;//Corrección si5351.set_freq(f2, SI5351_CLK0);//Seteo de la frecuencia en el CLOCK0 freq = f1; oled();//Llama a la función oled para mostrar la frecuencia en el display } if (customKey == '6'){ f1= 710000000ULL;//Frecuencia f2 = f1 - 138000ULL;//Corrección si5351.set_freq(f2, SI5351_CLK0);//Seteo de la frecuencia en el CLOCK0 freq = f1; oled();//Llama a la función oled para mostrar la frecuencia en el display } if (customKey == '7'){ f1= 1013000000ULL;//Frecuencia f2 = f1 - 169000ULL;//Corrección si5351.set_freq(f2, SI5351_CLK0);//Seteo de la frecuencia en el CLOCK0 freq = f1; oled();//Llama a la función oled para mostrar la frecuencia en el display } if (customKey == '8'){ f1= 1410100000ULL;//Frecuencia f2 = f1 - 218000ULL;//Corrección si5351.set_freq(f2, SI5351_CLK0);//Seteo de la frecuencia en el CLOCK0 freq = f1; oled();//Llama a la función oled para mostrar la frecuencia en el display } if (customKey == '9'){ f1= 1810500000ULL;//Frecuencia f2 = f1 - 276000ULL;//Corrección si5351.set_freq(f2, SI5351_CLK0);//Seteo de la frecuencia en el CLOCK0 freq = f1; oled();//Llama a la función oled para mostrar la frecuencia en el display } if (customKey == '0'){ f1= 2120000000ULL;//Frecuencia f2 = f1 - 220000ULL;//Corrección si5351.set_freq(f2, SI5351_CLK0);//Seteo de la frecuencia en el CLOCK0 freq = f1; oled();//Llama a la función oled para mostrar la frecuencia en el display } if (customKey == 'A'){ f1= 2492000000ULL;//Frecuencia f2 = f1 - 351000ULL;//Corrección si5351.set_freq(f2, SI5351_CLK0);//Seteo de la frecuencia en el CLOCK0 freq = f1; oled();//Llama a la función oled para mostrar la frecuencia en el display } if (customKey == 'B'){ f1= 2820000000ULL;//Frecuencia f2 = f1 - 395000ULL;//Corrección si5351.set_freq(f2, SI5351_CLK0);//Seteo de la frecuencia en el CLOCK0 freq = f1; oled();//Llama a la función oled para mostrar la frecuencia en el display } if (customKey == 'C'){ f1= 2960000000ULL;//Frecuencia f2 = f1 - 412000ULL;//Corrección si5351.set_freq(f2, SI5351_CLK0);//Seteo de la frecuencia en el CLOCK0 freq = f1; //botonSet = "SET13"; oled();//Llama a la función oled para mostrar la frecuencia en el display } if (customKey == 'D'){ f1= 5000000000ULL;//Frecuencia f2 = f1 - 668000ULL;//Corrección si5351.set_freq(f2, SI5351_CLK0);//Seteo de la frecuencia en el CLOCK0 freq = f1; //botonSet = "SET14"; oled();//Llama a la función oled para mostrar la frecuencia en el display } if (customKey == 'E'){ f1= 14400000000ULL;//Frecuencia f2 = f1 - 1858000ULL;//Corrección si5351.set_freq(f2, SI5351_CLK0);//Seteo de la frecuencia en el CLOCK0 freq = f1; //botonSet = "SET15"; oled();//Llama a la función oled para mostrar la frecuencia en el display } if (customKey == 'F'){ f1= 14420000000ULL;//Frecuencia f2 = f1 - 1862000ULL;//Corrección si5351.set_freq(f2, SI5351_CLK0);//Seteo de la frecuencia en el CLOCK0 freq = f1; oled();//Llama a la función oled para mostrar la frecuencia en el display } } void oled() { //Imprimimos en pantalla u8g2.clearBuffer(); // borra la memoria interna u8g2.setFont(u8g2_font_ncenB08_tr); // elige una fuente u8g2.drawStr(0,10,"FRECUENCIA CLOCK0: "); u8g2.drawStr(0,30,freq.c_str()); u8g2.drawStr(80,30," Herz"); // escribir "Herz" en la memoria interna freq = f1 / 100000000ULL; u8g2.drawStr(0,50,freq.c_str()); u8g2.drawStr(30,50," MHz"); // escribir "MHz" en la memoria interna u8g2.sendBuffer(); // transferir la memoria interna a la pantalla } |
PROYECTO RECOMENDADO