Помогите плиз решить задачку
- Войдите на сайт для отправки комментариев
Втр, 28/02/2017 - 20:40
Здравствуйте.
Задача в следующем: есть моргающий с определенной частотой светодиод и есть 2 кнопки... к примеру кнопка2 часть цикла находиться в нажатом состоянии и подает на 7 вход высокий уровень, а вот кнопка1 на входе 8 находится в низком уровне, мне нужно, что бы при разовом нажатии на кнопку1 светодиод погас (на 13том выходе появился 0 ) до момента пока на кнопке2 не появится низкий уровень и цикл повторялся поновой...
В силу того что на данный момент я полный нуб в вопросе программирования arduino прошу помощи у опытных. Буду очень благодарен.
Пока остановился на этом этапе -
int knopka = 8; int knopka2 = 7; int led = 13; void setup() { // put your setup code here, to run once: pinMode(knopka, INPUT); pinMode(knopka2, INPUT); pinMode(led, OUTPUT); } void loop() { // put your main code here, to run repeatedly: if (digitalRead(knopka) == HIGH) { digitalWrite(led, LOW); } else { digitalWrite(led, HIGH); delay(200); digitalWrite(led, LOW); delay(200); } }
Мой вариант такой Полный скетч здесь https://yadi.sk/d/Kzqip-WK3Eoc7h
Главный файл такой
Диод это я так прилепил для наглядности, что бы было проще разобраться для себя, а вообще там используется делеймикросеконд и задержки в 400 микросекунд. Таким образом я сформировал прямоугольный импульс для управления драйвером шаговика.... Но вот со скетчем, что-то никак...
Все тоже самое. Замени в классе Cl_module_led millis micros() и дальше выставляй.
Спасибо, попробую разобраться в той куче строк...
Все работает, заменил в Cl_module_led millis на micros и в class_module_Led в строке
ввожу 800 микросекунд, я так понимаю это полный период и соответствует частоте в 1.25 килогерца?
800 это скорее полупериод . А частота 1000000/(800+800)=625Гц
Спасибо!