Manufaturação industrial
Internet das coisas industrial | Materiais industriais | Manutenção e reparo de equipamentos | Programação industrial |
home  MfgRobots >> Manufaturação industrial >  >> Manufacturing Technology >> Processo de manufatura

Gerador de onda quadrada simples DIY de até 1 MHz

Componentes e suprimentos

Arduino Nano R3
× 1
Adafruit LCD padrão - 16x2 branco em azul
× 1
Botão de pressão, momentâneo
× 3
Potenciômetro de volta única - 10k ohms
× 1

Aplicativos e serviços online

Arduino IDE

Sobre este projeto


Este é um gerador de onda quadrada simples que basicamente usa a biblioteca TimerOne, permite gerar um sinal PWM no pino 9 na faixa de cerca de 5 Hz a 1 Mhz, e você pode ajustar o ciclo de trabalho de 0 a 100%.

O dispositivo é muito simples de construir e consiste em apenas alguns componentes:

- Microcontrolador Arduino Nano

- Tela de LCD

- Três resistores pull up

- e três botões de pressão

O gerador de pulso tem a capacidade de ajustar o período de repetição do pulso usando os botões conectados às entradas digitais 6 e 7 do Arduino. 13 pinos de entrada permitem ajustar o ciclo de trabalho. As leituras de duração e ciclo de trabalho são exibidas na primeira linha do indicador LCD 16 × 2 e as leituras de frequência são exibidas na segunda linha. A etapa mínima para ajustar o período de repetição do pulso é 1 μs, então a frequência mudará discretamente, por exemplo, 1 μs é 1 MHz, 2 μs é 500 kHz, 3 μs é 333,333 Hz e assim por diante, e conforme a frequência diminui , a suavidade de seu ajuste aumenta. Isso é pouco prático em frequências mais altas, mas esse é o preço da simplicidade. Em um de meus vídeos anteriores, descrevi a construção de um dispositivo semelhante, mas com a ajuda de um chip DDS especializado que não tem essas deficiências e tem um alcance muito maior, mas é mais complexo de construir

Para visualizar o sinal de saída, uso um pequeno osciloscópio de canal único. Por fim, o dispositivo é montado em uma caixa adequada, sendo mais uma ferramenta útil no laboratório de eletrônica.

Código

  • código Arduino
Código do Arduino C / C ++
 #include  #include  LiquidCrystal lcd (12, 11, 5, 4, 3, 2); // RS, E, D4, D5, D6, D7 sem sinal longo t =1000 , f, k =512; // padrão 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, SAÍDA); pinMode (6, INPUT); // botão na entrada 6 pinMode (7, INPUT); // botão na entrada 7 pinMode (13, INPUT); // botão na entrada 13} void loop () {Timer1.initialize (t ); // período Timer1.pwm (9, k); // k - fator de preenchimento 0-1023. kn =digitalRead (6); // entrada do botão 6 (- período do pulso) kn1 =digitalRead (7); // entrada do botão 7 (+ período do pulso) kn2 =digitalRead (13); // entrada do botão 13 (+ preenchimento do círculo fator) if (kn ==HIGH) {// diminuindo o período drive ++; if (drive <30) {t =t-1; } // se o botão for pressionado por muito tempo, a correção do pulso else if (drive> 30 &&drive <60) {t =t-10; } else if (drive> =60 &&drive <100) {t =t-100; } else if (drive> =100) {t =t-1000; }} else {drive =0; } if (kn1 ==HIGH) {// adicionando um período drive0 ++; if (drive0 <30) {t =t + 1; // se o botão for mantido pressionado por um longo tempo, a correção do} else if (drive0> 30 &&drive0 <60) {t =t + 10; } else if (drive0> =60 &&drive0 <100) {t =t + 100; } else if (drive0> =100) {t =t + 1000; }} else {drive0 =0; } if (t ==0 || t> 300000) {// limitando a duração do pulso ao mínimo, se t =1; } if (t> 200000 &&t <300000) {// limitando a duração do pulso a t =200000; } f =1000000 / t; // calcula a frequência k1 =k * 100/1024; // calcula o fator de preenchimento% if (kn2 ==HIGH) {// botão para ajustar o fator de preenchimento (em um círculo de k =k + 16; // etapa 16 de 1024 (você pode fazer 8 para um ajuste mais suave)} if (k ==1024) {k =0;} // exibindo informações no 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"); atraso (300); lcd.setCursor (0,0); lcd.print (""); lcd.setCursor (0,1); lcd.print ( "");} 

Esquemas


Processo de manufatura

  1. Sinais de onda quadrada
  2. DIY LUMAZOID Arduino Music Visualiser
  3. Simple Word Clock (Arduino)
  4. DIY Simple 20 kHz Arduino Oscilloscope no Nokia 5110 LCD
  5. Faça você mesmo voltímetro usando Arduino e Smartphone
  6. JX Wave Generator
  7. Sensor de obstáculo simples com Arduino
  8. Faça você mesmo skate de realidade virtual
  9. Calculadora UNO simples
  10. Roda de medição simples DIY com codificador rotativo