Промышленное производство
Промышленный Интернет вещей | Промышленные материалы | Техническое обслуживание и ремонт оборудования | Промышленное программирование |
home  MfgRobots >> Промышленное производство >  >> Manufacturing Technology >> Производственный процесс

Простой генератор прямоугольных сигналов своими руками до 1 МГц

Компоненты и расходные материалы

Arduino Nano R3
× 1
Стандартный ЖК-экран Adafruit - 16x2, белый на синем
× 1
Кнопочный переключатель, мгновенный
× 3
Однооборотный потенциометр - 10 кОм
× 1

Приложения и онлайн-сервисы

IDE Arduino

Об этом проекте

Это простой генератор прямоугольных импульсов, который в основном использует библиотеку TimerOne, позволяющую генерировать ШИМ-сигнал на выводе 9 в диапазоне примерно от 5 Гц до 1 МГц, и вы можете регулировать рабочий цикл от 0 до 100%.

Устройство очень простое в сборке и состоит всего из нескольких компонентов:

- микроконтроллер Arduino Nano

- ЖК-дисплей

- Три подтягивающих резистора

- и три кнопки

Генератор импульсов имеет возможность регулировать период следования импульсов с помощью кнопок, подключенных к цифровым входам 6 и 7 Arduino. 13 входной контакт позволяет регулировать рабочий цикл. Показания продолжительности и рабочего цикла отображаются в первой строке ЖК-индикатора 16 × 2, а значения частоты отображаются во второй строке. Минимальный шаг для настройки периода повторения импульсов составляет 1 мкс, поэтому частота будет изменяться дискретно, например, 1 мкс - 1 МГц, 2 мкс - 500 кГц, 3 мкс - 333,333 Гц и так далее, и по мере уменьшения частоты. , увеличивается плавность его регулировки. Это непрактично на высоких частотах, но это цена простоты. В одном из своих предыдущих видеороликов я описал создание аналогичного устройства, но с помощью специализированного чипа DDS, который не имеет этих недостатков и имеет гораздо больший диапазон, но более сложен в сборке

Для визуализации выходного сигнала я использую небольшой одноканальный осциллограф. Наконец, устройство помещается в подходящую коробку, и это еще один полезный инструмент в лаборатории электроники.

Код

  • Код Arduino
Код Arduino C / C ++
 #include  #include  LiquidCrystal lcd (12, 11, 5, 4, 3, 2); // RS, E, D4, D5, D6, D7без подписи long t =1000 , f, k =512; // по умолчанию 1000 мкс (1000 Гц), меандр, байт импульса k1, kn, kn1, kn2; int drive, drive0; void setup () {lcd.begin (16, 2); // LCD 16X2 pinMode (9, ВЫХОД); pinMode (6, INPUT); // кнопка на входе 6 pinMode (7, INPUT); // кнопка на входе 7 pinMode (13, INPUT); // кнопка на входе 13} void loop () {Timer1.initialize (t ); // период Timer1.pwm (9, k); // k - коэффициент заполнения 0-1023. kn =digitalRead (6); // кнопка input 6 (- период импульса) kn1 =digitalRead (7); // кнопка input 7 (+ период импульса) kn2 =digitalRead (13); // кнопка input 13 (+ заливка кружка) factor) if (kn ==HIGH) {// уменьшение периода drive ++; если (диск <30) {t =t-1; } // если кнопка удерживается долгое время, коррекция импульса else if (drive> 30 &&drive <60) {t =t-10; } иначе, если (диск> =60 &&диск <100) {t =t-100; } иначе, если (диск> =100) {t =t-1000; }} еще {диск =0; } if (kn1 ==HIGH) {// добавляем точку drive0 ++; если (drive0 <30) {t =t + 1; // если кнопка удерживается долгое время, исправление} else if (drive0> 30 &&drive0 <60) {t =t + 10; } иначе, если (drive0> =60 &&drive0 <100) {t =t + 100; } иначе, если (drive0> =100) {t =t + 1000; }} еще {drive0 =0; } if (t ==0 || t> 300000) {// ограничение длительности импульса до минимума, если t =1; } if (t> 200000 &&t <300000) {// ограничение длительности импульса t =200000; } f =1000000 / т; // вычисляем частоту k1 =k * 100/1024; // вычисляем коэффициент заполнения% if (kn2 ==HIGH) {// кнопка для настройки коэффициента заполнения (в кружке от k =k + 16; // шаг 16 из 1024 (вы можете сделать 8 для более плавной настройки)} if (k ==1024) {k =0;} // вывод информации по индикатору lcd.setCursor (0,0); lcd.print ("T ="); lcd.print (t); lcd.print ( "нас"); lcd.setCursor (12,0); lcd.print (k1); lcd.print ("%"); lcd.setCursor (0,1); lcd.print ("F ="); lcd .print (f); lcd.print ("Hz"); delay (300); lcd.setCursor (0,0); lcd.print (""); lcd.setCursor (0,1); lcd.print ( "");} 

Схема


Производственный процесс

  1. Сигналы прямоугольной волны
  2. Музыкальный визуализатор DIY LUMAZOID для Arduino
  3. Простые часы со словами (Arduino)
  4. DIY Простой осциллограф Arduino 20 кГц на ЖК-дисплее Nokia 5110
  5. Вольтметр своими руками с использованием Arduino и смартфона
  6. Генератор волн JX
  7. Простой датчик препятствий с Arduino
  8. Скейтборд виртуальной реальности «Сделай сам»
  9. Простой калькулятор UNO
  10. Простое измерительное колесо с поворотным энкодером, сделанное своими руками