Официальный сайт компании Arduino по адресу arduino.cc
Управление диодом при поступлении сигнала с порта
- Войдите или зарегистрируйтесь, чтобы получить возможность отправлять комментарии
Сб, 07/05/2016 - 10:29
Хочу сделать, чтобы диод включался автоматически( в зависимости от освещённости), при получении 1 с порта, а если 0, то выключаем. Не получается сделать, чтобы постоянно светодиод менял яркость, а не только при получении сигнала.
#define foto 0 void setup() { Serial.begin(9600); pinMode(10, OUTPUT); } void loop() { Serial.println(analogRead(foto)); if(Serial.available()) { int c = Serial.read(); if (c == '1') { trololo(); Serial.flush(); } else if (c == '0') { lol(); Serial.flush(); } } } void trololo() { int val = (analogRead(foto)); val = constrain (val, 190, 630); int Level = map (val ,630 ,190, 0 , 255); analogWrite (10, Level); } void lol() { analogWrite (10, 0); }
Не получается сделать, чтобы постоянно светодиод менял яркость, а не только при получении сигнала.
Насколько я понял Вагш код, у Вас не не получается, а Вы просто не пытались. Если я ошибаюсь, скажите в какой(их) строке Вы пытаетесь это сделать?
Строку 13 измените на
char
c =
Serial
.read();
, думаю, сами догадаетесь, почему.Тоже не вижу в коде "постоянно светодиод менял яркость"
Возможно что надо и не пытался, могу ошибаться. Пишу первый раз, решил с простенького начать)) Прошу помочь или направить в нужное русло.
как я понимаю, моя функция "trololo" должна быть по типу, как loop. Пробовал эти строки в loop, но потом в trololo не видит "Level"
как я понимаю, моя функция "trololo" должна быть по типу, как loop.
Ну, по типу они идентичны - обе void.
Если Вы хотите, чтобы у Вас менялась яркость, Вы пропишите это в программе, попробуйте, а потом уж, если не получится, обращайтесь за помощью. Пока же предмета для помощи нет, есть просьба сделать за Вас, а это делается в другом разделе форума.
Я не прошу сделать, просто направьте, пожалуйста, в нужное русло.
Ну, по типу они идентичны - обе void.
Если Вы хотите, чтобы у Вас менялась яркость, Вы пропишите это в программе, попробуйте, а потом уж, если не получится, обращайтесь за помощью. Пока же предмета для помощи нет, есть просьба сделать за Вас, а это делается в другом разделе форума.
Почему я прошу, когда я это в loop пишу, то меняется всё автоматически, без проблем.
Простите, но тогда я вообще не понимаю Вашей проблемы. Если Вы знаете как сделать, то делайте. Если не знаете, то объясните проблему толком. И приведите тот код, который не работает. Тот код, что я виже сейчас - да, яроксть в нём не меняется, но там и попытки её менять нет. Я Вас где спросил где Вы пытаетесь её менять, в ответ что-то непоянтное "если ставлю, если не ставлю". Вы можете сказать, "я пытаюсь поменять яркость в строке №ХХХ, но почему-то зараза не меняется". Если Вы просто хотите, что за Вас кто-то написал изменение яркости, я Вам уже сказал куда надо обращаться.
Простите, но тогда я вообще не понимаю Вашей проблемы. Если Вы знаете как сделать, то делайте. Если не знаете, то объясните проблему толком. И приведите тот код, который не работает. Тот код, что я виже сейчас - да, яроксть в нём не меняется, но там и попытки её менять нет. Я Вас где спросил где Вы пытаетесь её менять, в ответ что-то непоянтное "если ставлю, если не ставлю". Вы можете сказать, "я пытаюсь поменять яркость в строке №ХХХ, но почему-то зараза не меняется". Если Вы просто хотите, что за Вас кто-то написал изменение яркости, я Вам уже сказал куда надо обращаться.
Вот
но это зараза работает, если в loop(). Простите, но я просто в первый раз пишу.
но это зараза работает, если в loop(). Простите, но я просто в первый раз пишу.
Простие, мне это немного надоело. ЧТО в loop? Все 7 строк? Или с 3 по 6?
Если первое - то не может работать. Если второе, то как функция по-Вашему будет работать если Вы её НЕ ВЫЗЫВАЕТЕ? Поставьте первой строчкой loop вызов этой функции ( trololo(); ) и будет работать, куда она денется-то?
Спасибо, заработало) Буду дальше думать
Не за что. Постарайтесь яснее формулировать вопросы, а то Вы же сами полдня потеряли на ровном месте.