2 функции в 1 скетче, происходит конфликт
- Войдите на сайт для отправки комментариев
ДОБРЫЙ ДЕНЬ!
Естественно новичек, ничего не понимаю в программировании, но методом тыка - получается, но не все.
описание: сервопривод 90, ir приемник, микрофон. (hw 484)
Нужно; сделано:
1. Поворачивать серво-привод на 90 градусов, по команде с пульта. скетч нашел, работает как надо.
#include <Servo.h> #include <IRremote.h> Servo tnk; unsigned long Value1 = 0xFF02FD; unsigned long Value2 = 0xFFA857; int RECV_PIN = 11; //вход ИК приемника IRrecv irrecv(RECV_PIN); decode_results results; void setup() { irrecv.enableIRIn(); // включить приемник tnk.attach(10); // серво подключён на цифровой вход 10 (pin 10) } void loop() { if (irrecv.decode(&results)) { irrecv.resume(); } if(results.value == Value1) tnk.write(160); //крутим серву например (0 градусов) if(results.value == Value2) tnk.write(90); }
2. Решил усложнить, чтобы работало еще от увеличения звука, то есть есть пищалка при ее звуке серва выполняет 1-ю команду. -- Отдельный скет также работает на ура.
#include <Servo.h> Servo servo; int threshold = 700; int volume; void setup() { Serial.begin(9600); // For debugging pinMode(A0, INPUT); // вход pinMode(10, OUTPUT);// выход servo.attach (10); // моторчик из порта 10 } void loop() { volume = analogRead(A0); Serial.println(volume); //delay(1000); if(volume>=threshold){ servo.write (160); // если звук громкий то поворот на 90 градусов delay ( 100); } else{ servo.write (90) ; // если нет звука то находится в нуле delay ( 1000); } }
Решил объединить две команды в одну. То есть, чтобы серво привод работал одинаково и при команде с пульта, или самостоятельно при появлении звука.
но без знания программирования
у меня получается, что при нажатии на пульт сервопривод начинает постоянно срабатывать без остановки.
вот код.
#include <Servo.h> #include <IRremote.h> Servo servo; int threshold = 700; int volume; Servo tnk; unsigned long Value1 = 0xFF02FD; unsigned long Value2 = 0xFFA857; int RECV_PIN = 11; //вход ИК приемника IRrecv irrecv(RECV_PIN); decode_results results; void setup() { Serial.begin(9600); // For debugging pinMode(A0, INPUT); // вход pinMode(10, OUTPUT);// выход servo.attach (10); // моторчик из порта 10 irrecv.enableIRIn(); // включить приемник tnk.attach(10); // серво подключён на цифровой вход 10 (pin 10) } void loop() { volume = analogRead(A0); Serial.println(volume); //delay(1000); if(volume>=threshold){ servo.write (160); // если звук громкий то поворот на 160 градусов delay ( 100); } else{ servo.write (90) ; // если нет звука то находится в нуле delay ( 1000); } { if (irrecv.decode(&results)) { irrecv.resume(); } if(results.value == Value1) tnk.write(160); //крутим серву например (0 градусов) if(results.value == Value2) tnk.write(90); } } //=========================== Что делать и куда копать не понимаю, поэтому обращаюсь к широкой публике. заранее спасибо!
Что делать и куда копать не понимаю, поэтому обращаюсь к широкой публике. заранее спасибо!
У тебя в одном скетче объект «сервопривода» называется Servo, в другом tnk. А должно быть одно имя, объявленное вначале скетча.
Спасибо, Да, пробовал так и так, вот исправил, сейчас работает вроде кое-как, через раз, думаю все в задержках.
заменил еще направление вращения у микрофона,
вот как то так
Время показало: В случае, если микрофон подключен, то работает только одна кнопка на пульте, серво поворачивает и сразу возвращается в исходное положение.
Eсли я отключаю микрофон то сервопривод занимает противоположное состояние, первая кнопка работать перестает, начинает работать от другой копки пульта, и серво крутит в другую сторону.
Время показало: В случае, если микрофон подключен, то работает только одна кнопка на пульте, серво поворачивает и сразу возвращается в исходное положение.
Eсли я отключаю микрофон то сервопривод занимает противоположное состояние, первая кнопка работать перестает, начинает работать от другой копки пульта, и серво крутит в другую сторону.
2. Комментарии к поворотам не напутаны?
3. Напиши по-русски, что ты хочешь от устройства. У тебя 3 варианта кнопок и 2 варианта микрофона - как схема должна реагировать на сочетания?
Скобки 40, 48, как бы лишние, кто знает, как компилятор воспримет...
Сорри. Комментарии в скетче не изменял, так что на них обращать внимания не надо.
Сорри. Комментарии в скетче не изменял, так что на них обращать внимания не надо.