| Ваш IP: 34.204.171.108 | Online(26) - гости: 14, боты: 12 | Загрузка сервера: 0.57 ::::::::::::


Генератор импульсов от 0.119 Гц до 8 МГц (Arduino)

На рисунке показана схема простого генератора импульсов (меандр), генератор имеет 5 основных пределов и 4-е множителя.  Минимальный шаг регулировки периода 0,125 мкс, максимальный 128 мкс (без учета множителя).

Пределы:

  • шаг регулировки 0,125 мкс, регулировка периода импульсов от 0,125 мкс до 8.192 мс (от 8 МГц до 122.07 Гц)
  • шаг регулировки 1 мкс, регулировка периода импульсов от 1 мкс до 65.536 мс (от 1 МГц до 15.25879 Гц)
  • шаг регулировки 8 мкс, регулировка периода импульсов от 8 мкс до 524.288 мс (от 125000 Гц до 1.90735 Гц)
  • шаг регулировки 32 мкс, регулировка периода импульсов от 32 мкс до 2.097152 с (от 31250 Гц до 0.47684 Гц)
  • шаг регулировки 128 мкс, регулировка периода импульсов от 128 мкс до 8.388608 с (от 7812.5 Гц до 0.11911 Гц)

Множитель меняется при помощи кнопки энкодера в пределах (шаг регулировки х множитель): 1, 10, 100, 1000

Библиотеки:

MsTimer2.ZIP

Encoder.zip

  #include <LiquidCrystal.h>
  #include <Encoder.h>
  #include <MsTimer2.h>
   Encoder myEnc(11, 10);// CLK, DT подключение энкодера
   LiquidCrystal lcd(7, 6, 2, 3, 4, 5);// RS,E,D4,D5,D6,D7 подключение LCD
   float f,ff;
   long x;
   unsigned long newPosition,oldPosition  = -999;
   int w=1,kn,mn,pred,kn1,mn1,zap,zap1;
   String mnoj,dell;
 
void setup(){
  lcd.begin(16, 2);Serial.begin(9600);
  MsTimer2::set(1, to_Timer);MsTimer2::start();
  pinMode(12,INPUT); // КНОПКА МНОЖИТЕЛЯ ПЕРИОДА
  pinMode(13,INPUT); // КНОПКА ПРЕДЕЛА 0.125 МКС 1 МКС 8 МКС
  pinMode(9,OUTPUT); // ВЫХОД СИГНАЛА
  TCCR1A = 0x40;TCCR1B = 0x09;OCR1A = 0;
}
 
void to_Timer(){newPosition = myEnc.read()/4;}
 
void loop(){  
 
  if(digitalRead(12)==LOW){kn1++;w=1;delay(200);if(kn1>3){kn1=0;}lcd.clear();}
 
  switch(kn1){
  case 0: mn1=1;   mnoj="   x1";break;
  case 1: mn1=10;  mnoj="  x10";break;
  case 2: mn1=100; mnoj=" x100";break;
  case 3: mn1=1000;mnoj="x1000";break;
}
 
  if(digitalRead(13)==HIGH){kn++;w=1;kn1=0;x=0;delay(200);if(kn>4){kn=0;}lcd.clear();}
 
  switch(kn){
  case 0: mn=1;pred=1;break;    // 0.125 mkS 8.192 mS = 122.07 HZ ... 0.125 mkS = 80000000 HZ 
  case 1: mn=2;pred=8;break;    // 1     mkS 65.536 mS = 15.25879 HZ ... 1.000 mkS = 1000000 HZ
  case 2: mn=3;pred=64;break;   // 8     mkS 524.288 mS = 1.90735 HZ ... 8.000 mkS = 125000 HZ
  case 3: mn=4;pred=256;break;  // 32    mkS 2.097152 S = 0.47684 HZ ... 32.000 mkS = 31250 HZ
  case 4: mn=5;pred=1024;break; // 128   mkS 8.388608 S = 0.11911 HZ ... 128.000 mkS = 7812.5 HZ
}
 
  if (newPosition != oldPosition) {
    oldPosition = newPosition;
    x=x+newPosition*mn1;myEnc.write(0);newPosition=0;if(x>65535){x=65535;}if(x<0){x=0;}lcd.clear();w=1;}
 
  if(w==1){TCCR1A = 0x40;TCCR1B = 0x08 | mn;OCR1A=x;w=0;}
 
  lcd.setCursor(0,1);ff=(float)16000000/pred/(2*(1+x));
  if(ff<100){zap1=5;}else{zap1=3;}
  lcd.print(ff,zap1); lcd.print(" Hz");
  lcd.setCursor(14,1);
  lcd.setCursor(0,0);
  if(1/ff*1000000<1000){zap=3;}
  if(1/ff*1000000>1000&&1/ff*1000000<10000){zap=2;}
  if(1/ff*1000000>100000){zap=1;}
  lcd.print(1/ff*1000000,zap); lcd.print("uS");
  lcd.setCursor(11,0);lcd.print(mnoj);Serial.println(x);
}

Добавить комментарий

Войти с помощью: 

Случайные статьи

  • Простой программатор ППЗУ

    Тумблерами SA1-SA8 устанавливаются адреса по которым нужно записать информацию. Запись производят на каждый бит информации, устанавливая переключатель SA9 на те выводы на которых по данному адресу должная быть лог. единица и нажимая кнопку SB1 включающую запись этой единицы. после того как один байт записан, тумблерами SA1-SA8 выбираем новый адрес и …Подробнее...
  • Автомобильный регулятор освещения

    В темное время суток иногда необходимо дополнительное освещения в автомобиле (для ремонта, регулировка двигателя и др), предложенная схема позволяет плавно регулировать осветительную 12В/2А лампу от 5% до 90% ее яркости при помощи ШИМ регулятора. Регулятор предназначен для автомобилей с отрицательной массой. Конструкция регулятора основана на микросхеме 40106 которая работает как …Подробнее...
  • Явления в электроизоляционных материалах при воздействии электрического поля. Поляризация диэлектриков

    В рабочем режиме электрооборудования электроизоляционные конструкции являются средой электрического поля. В простейшем виде диэлектрик между двумя токоведущими деталями представляет собой конденсатор. Под воздействием электрического поля диэлектрик поляризуется — происходит смещение электрических зарядов в атомах, ионах и молекулах. Это смещение зарядов и, следовательно, появление соответствующего тока возникает в направлении поля и …Подробнее...
  • Регуляторы тембра

    Регуляторы тембра

    Активный регулятор тембра LM349 можно заменить на К1401УД2. LM349 содержит 4-е ОУ, так что в стерео варианте потребуется только одна микросхема. Трехполосный активный регулятор тембра Элементы: C1    = 1.0 C2    = 10,0*25В C3    = 0,05 C4    = 0,05 C5    = 0,022 C6    = 0,005 C7    = 0,001 C8    = 0,1 …Подробнее...
  • Пяти полосный эквалайзер с регулировкой громкости и баланса на CXA1352AS

    Пяти полосный эквалайзер с регулировкой громкости и баланса на CXA1352AS

    На рисунке представлена схема стереофонического 5-и полосного эквалайзера с регулировкой громкости и баланса на микросхеме CXA1352AS. Основные характеристики: Напряжение питания 4…10 В Потребляемый ток 8…16 мА Количество полос эквалайзера  5 Диапазон регулировки -13…+14 дБ Диапазон регулировки громкости -94…0 дБ Диапазон регулировки баланса -66…0 дБ Коэффициент гармоник 0,25 % Отношение сигнал/шум …Подробнее...