Помогите пожалуйста с генератором...
- Войдите на сайт для отправки комментариев
Пт, 30/01/2015 - 08:28
Приветствую всех! Нужна Ваша помощь, так как я в программировании совсем слаб. Есть плата Arduino Nano (Atmega 328). Мне нужно на ее основе сделать генератор прямоугольных импульсов с регулируемой частотой от 1Гц до 15 Гц, амплитудой 5 В. так же желательна регулировка скважности. Кто-нибудь может помочь со схемой и кодом?!
Пробовал данный скетч, но тут ниже 16Гц получить не удается...
#define OUT 9 // вывод выходного сигнала
unsigned long frequency = 0;
void setup()
{
Serial.begin(9600);
pinMode(OUT, OUTPUT);
Serial.println("START");
}
void loop()
{
if(Serial.available()) Set_frequency(Serial.parseInt());
}
void Set_frequency(uint32_t freq)
{
uint16_t ocr;
cli();
if(freq)
{
TCCR1A = 0b01000000;
if(freq < 134)
{
TCCR1B = 0b00001010;
ocr = 1000000/freq - 1;
freq = 1000000/(ocr+1);
}
else
{
TCCR1B = 0b00001001;
ocr = 8000000/freq - 1;
freq = 8000000/(ocr+1);
}
OCR1AH = highByte(ocr);
OCR1AL = lowByte(ocr);
TIMSK1 = 0b00000010;
}
else
{
TCCR1A = 0;
TCCR1B = 0;
TIMSK1 = 0;
freq = 0;
}
sei();
Serial.println(freq);
}
ISR(TIMER1_COMPA_vect){
}
Заранее благодарю!
Вам это надо насколько точно и с каким шагом?
Если уж совсем просто - 1Гц.
Спасибо, что отозвались! Мне желательно шаг в 1 Гц с точностью хотя бы 100 милиГерц.
http://arduino.ru/tutorials/BlinkWithoutDelay
Для повышения точности вместо millis() лучше http://arduino.ru/Reference/Micros
Управление - http://arduino.ru/forum/programmirovanie/rabota-s-knopkami-v-pomoshch-no...
Читаем, вникаем, пробуем.
Хорошо, если появятся вопросы, то отпишусь здесь. Спасибо!
Я думаю как-то так.
Друзья, нужна ваша помощь, нужен генератор прямоугольных импульсов от 1 до 50 герц с регулируемой частотой. Помогите пожалуйста!
и чем вы собираетесь регулировать частоту?
С помощью потенциометра
Лови. Проверил на ошибки но в палату не загружал
Както делал для медленного ШИМ`а
Ура! Получилось, 1 - 49.54 Герц. Огромное спасибо, я так благодарен вам.
Ну раз получилось, то код в студию.
Спасибо большое за библиотеку. Думал не найду ничего подходящего. А с этой библой получилось то что нужно.
добрый день. у меня есть задачка, но познания не позволяют решить её гладко. я хочю сделать управляемый инвентор, тоесть управлять мостом из 4 НПН транзисторов. частота от 50 до 150 Гц. регулировка потенциометром с шагом 1 или 2 Гц( не пренципиально). транзисторы будут в ключевом режиме. помогите пожалуйста
rybakv. Не уверен что у вас что-то выйдет. Но вот вам код.
Спасибо большое qwone! скетч заработал. менял для проверки частоту 1 -10 гц. все работает. только управлять буду двумя Полевыми транзюками и выход через трансформатор с УПСа.
для этого добавил в код
Скетч расчитан для генерации низких частот. А вот чем выше частота,тем больше будет частота плавать из-за Serial и отработки потенциометра. Можно и здесь чуть подправить, но тогда скетч приобритет сильную специфичность, непонятную вам. Даже и в этом виде скетч уже непонятен для вас. delayMicroseconds разумеется на ваше усмотрение. На низких частотах это строка может быть опущена.
qwone, а низкие частоты это до 1 кГц?
Лови. Проверил на ошибки но в палату не загружал
Я проверил, у меня отлично работает!
А как сделать больше частоту, например от 1 до 1000гц?