Manufactura industrial
Internet industrial de las cosas | Materiales industriales | Mantenimiento y reparación de equipos | Programación industrial |
home  MfgRobots >> Manufactura industrial >  >> Manufacturing Technology >> Proceso de manufactura

Generador de ondas cuadradas simple de bricolaje hasta 1MHz

Componentes y suministros

Arduino Nano R3
× 1
LCD estándar Adafruit - 16x2 blanco sobre azul
× 1
Interruptor de botón, momentáneo
× 3
Potenciómetro de una sola vuelta - 10k ohmios
× 1

Aplicaciones y servicios en línea

Arduino IDE

Acerca de este proyecto

Este es un generador de onda cuadrada simple que básicamente usa la biblioteca TimerOne que le permite generar una señal PWM en el pin 9 en el rango de aproximadamente 5Hz a 1 Mhz, y puede ajustar el ciclo de trabajo de 0 a 100%.

El dispositivo es muy simple de construir y consta de solo unos pocos componentes:

- Microcontrolador Arduino Nano

- Pantalla LCD

- Tres resistencias pull up

- y tres pulsadores

El generador de pulsos tiene la capacidad de ajustar el período de repetición de pulsos usando los botones conectados a las entradas digitales 6 y 7 del Arduino. El pin de 13 entradas le permite ajustar el ciclo de trabajo. Las lecturas de duración y ciclo de trabajo se muestran en la primera fila del indicador LCD 16 × 2, y las lecturas de frecuencia se muestran en la segunda fila. El paso mínimo para ajustar el período de repetición del pulso es 1 μs, por lo que la frecuencia cambiará discretamente, por ejemplo, 1 μs es 1 MHz, 2 μs es 500 kHz, 3 μs es 333,333 Hz, y así sucesivamente, y a medida que la frecuencia disminuye , aumenta la suavidad de su ajuste. Esto es poco práctico a frecuencias más altas, pero ese es el precio de la simplicidad. En uno de mis videos anteriores describí la construcción de un dispositivo similar pero con la ayuda de un chip DDS especializado que no tiene estas deficiencias y tiene un rango mucho mayor, pero es más complejo de construir

Para visualizar la señal de salida utilizo un pequeño osciloscopio monocanal. Finalmente, el dispositivo se monta en una caja adecuada, y es otra herramienta útil en el laboratorio de electrónica.

Código

  • código Arduino
Código Arduino C / C ++
 #include  #include  LiquidCrystal lcd (12, 11, 5, 4, 3, 2); // RS, E, D4, D5, D6, D7lessigned long t =1000 , f, k =512; // predeterminado 1000 μs (1000 Hz), meandro, byte de pulso k1, kn, kn1, kn2; int drive, drive0; void setup () {lcd.begin (16, 2); // LCD 16X2 pinMode (9, SALIDA); pinMode (6, INPUT); // botón en la entrada 6 pinMode (7, INPUT); // botón en la entrada 7 pinMode (13, INPUT); // botón en la entrada 13} void loop () {Timer1.initialize (t ); // período Timer1.pwm (9, k); // k - factor de relleno 0-1023. kn =digitalRead (6); // entrada de botón 6 (- período de pulso) kn1 =digitalRead (7); // entrada de botón 7 (+ período de pulso) kn2 =digitalRead (13); // entrada de botón 13 (+ relleno de círculo factor) if (kn ==HIGH) {// disminución del período drive ++; si (unidad <30) {t =t-1; } // si el botón se mantiene presionado durante mucho tiempo, la corrección del pulso else if (drive> 30 &&drive <60) {t =t-10; } else if (unidad> =60 &&unidad <100) {t =t-100; } más si (unidad> =100) {t =t-1000; }} más {unidad =0; } if (kn1 ==HIGH) {// agregando un período drive0 ++; si (drive0 <30) {t =t + 1; // si el botón se mantiene presionado durante mucho tiempo, la corrección de} else if (drive0> 30 &&drive0 <60) {t =t + 10; } si no (unidad0> =60 &&unidad0 <100) {t =t + 100; } si no (unidad0> =100) {t =t + 1000; }} else {drive0 =0; } if (t ==0 || t> 300000) {// limitar la duración del pulso al mínimo, si t =1; } if (t> 200000 &&t <300000) {// limitar la duración del pulso a t =200000; } f =1000000 / t; // calcula la frecuencia k1 =k * 100/1024; // calcula el% del factor de relleno if (kn2 ==HIGH) {// botón para ajustar el factor de relleno (en un círculo de k =k + 16; // paso 16 de 1024 (puede hacer 8 para un ajuste más suave)} if (k ==1024) {k =0;} // mostrando información sobre el indicador lcd.setCursor (0,0); lcd.print ("T ="); lcd.print (t); lcd.print ( "us"); lcd.setCursor (12,0); lcd.print (k1); lcd.print ("%"); lcd.setCursor (0,1); lcd.print ("F ="); lcd .print (f); lcd.print ("Hz"); retraso (300); lcd.setCursor (0,0); lcd.print (""); lcd.setCursor (0,1); lcd.print ( "");} 

Esquemas


Proceso de manufactura

  1. Señales de ondas cuadradas
  2. Visualizador de música DIY LUMAZOID Arduino
  3. Reloj de palabras simple (Arduino)
  4. DIY Osciloscopio Arduino simple de 20 kHz en Nokia 5110 LCD
  5. Voltímetro de bricolaje con Arduino y un teléfono inteligente
  6. Generador de ondas JX
  7. Sensor de obstáculos simple con Arduino
  8. Patineta de realidad virtual DIY
  9. Calculadora UNO simple
  10. Rueda de medición simple de bricolaje con codificador giratorio
  11. Cronómetro Arduino simple