Генератор с регулируемой частотой. Помогите пожалуйста!!!!
- Войдите на сайт для отправки комментариев
Пнд, 09/01/2017 - 00:24
int out_pin=13;// нога генератора int Pin = A0;// нога потенциометра int frequency = 1; // частота от 1 до 50 int led = 6; void non_stop_program1(uint16_t span) { static uint32_t future = 0; static uint8_t stat = 0; if (millis()<future) return ; future += span; stat =!stat; digitalWrite(out_pin, stat); } void setup() { pinMode(out_pin, OUTPUT); Serial.begin(9600); pinMode(led, OUTPUT); } void loop() { frequency = map(analogRead(Pin), 0, 1023, 1, 50); non_stop_program1(500/frequency); Pin = analogRead(0); analogWrite(led, Pin/4); Serial.print(Pin/4); }
Это генератор с регулируемой частотой от 1 до 50 Гц. Частота на его выходе ужасно плавает, можно ли решить это??? Помогите пожалуйста!!!
странный ник. странный код. если добавишь коментарий к каждой строчке почему так сделал тогда можно поговорить
Код, действительно, странный.
Чтобы частота не плавала (точнее, плавала значительно меньше - в пределах нестабильности кварца), нужно использовать аппаратный таймер.
Господа, это ж просто троль:
строка 21 - читаем Pin
строка 23 - в номер пина Pin запоминаем некий мусор.
========================
Ну если не троль, то просто сумасшедший какой-то.
Да и ник подозрительный ;) ;) ;)... (шутка, если что)
wdrakula, у этого товарища похоже трудности не только с освоением ардуино, но и вообще.. ему ещё в августе qwone написал тот скетч что в начале этого топика. Потом он в течении последующих 4х месяцев периодически снова просил "генератор 50 Герц" в разных темах. И вот уже зима, и опять всплыл тот скетч в которой добавилось две строчки с какой-то пургой.
Я для сравнения через 3 месяца после начала изучения ардуино и языка Си уже писал свои алгоритмы шумоподавления ацп Притом что считаю себя довольно туповатым в плане освоения чего либо нового..