Arduino Помогите с кодом пожалуйста
- Войдите на сайт для отправки комментариев
Втр, 09/02/2016 - 16:56
на ацп имеем напряжение от 4 до 5в.как только она падает до 1в выполняем код
вот исходный код , помогите исправить недочеты.
int a = A4;
int ledPin = 13;
void setup() {
}
void loop()
{
if(analogRead(a) < 250) // если на 4 АЦП меньше одного вольта примерно
{
digitalWrite(ledPin, HIGH); // зажигаем диод
return; // больше ни на что ниже не реагируем
}
// на это не реагируем, если зажгли диод выше
digitalWrite(13, LOW); // не зажигаем диод
}
// на это не реагируем, если зажгли диод выше
digitalWrite(13, LOW); // не зажигаем диод
}
Откуда следует, что не реагируем? Гасим диод нахрен при следующем входе в loop() после увеличения напряжения.
И не забудьте установить режим OUTPUT для пина на котором диод. В setup это надо сделать.
digitalWrite(13, LOW); // не зажигаем диод
т.е эта строчка вообще не нужна ?
Ну, нужна, если Вам нужно гасить диод, когда напряжение повысится.
Ну, нужна, если Вам нужно гасить диод, когда напряжение повысится.
проверю и отпишусь
Ну, нужна, если Вам нужно гасить диод, когда напряжение повысится.
проверю и отпишусь
а как сделать чтобы при повторном измерение, код не выполнялся.
т.е я контак размыкаю, и опять подаю 5в и программа не реагирует.
Простите, не понял вопроса. Давайте так:
1. Вы выложите совй текущий код (только правильно, как вот здесь написано)
2. и опишете как оно у Вас работает. Только чётко: делаю то-то- получаю то-то, затем делаю это-то - получаю это-то
3. и напишете как бы Вы хотели чтобы оно было также чётко: делаю то-то- получаю то-то ...
Простите, не понял вопроса. Давайте так:
1. Вы выложите совй текущий код (только правильно, как вот здесь написано)
2. и опишете как оно у Вас работает. Только чётко: делаю то-то- получаю то-то, затем делаю это-то - получаю это-то
3. и напишете как бы Вы хотели чтобы оно было также чётко: делаю то-то- получаю то-то ...
Простите, не понял вопроса. Давайте так:
1. Вы выложите совй текущий код (только правильно, как вот здесь написано)
2. и опишете как оно у Вас работает. Только чётко: делаю то-то- получаю то-то, затем делаю это-то - получаю это-то
3. и напишете как бы Вы хотели чтобы оно было также чётко: делаю то-то- получаю то-то ...
т.е замыкаю ацп4 с 5вольтами, диод 13 загорает.и продолжает гореть. при следующей этой манипуляции ничего не должно происходить. как горел так и горит.
Простите, не понял вопроса. Давайте так:
1. Вы выложите совй текущий код (только правильно, как вот здесь написано)
2. и опишете как оно у Вас работает. Только чётко: делаю то-то- получаю то-то, затем делаю это-то - получаю это-то
3. и напишете как бы Вы хотели чтобы оно было также чётко: делаю то-то- получаю то-то ...
т.е замыкаю ацп4 с 5вольтами, диод 13 загорает.и продолжает гореть. при следующей этой манипуляции ничего не должно происходить. как горел так и горит.
а у меня при след замыкании на 5в опять загорается диод и при размыкании тухнет.
Создай переменную, прибавь к ней 1 при первом замыканий, и не сбрасывай ее. поставь что бы условие работало только когда переменная равна 0. Получится как ты хочешь.
а у меня при след замыкании на 5в опять загорается диод и при размыкании тухнет.
Ну, всё правильно, у Вас именно так и написано. Смотрите свой код:
заходим в loop(),
в строке 10 проверяем больше там, чем 1.2 вольта.
если больше, то зажигаем светодиод и выходи (строки 11 и 12)
а если не больше, то продолжаем выполняться и выполняем строку 14 - гасим светодиод.
Т.е. работает в точности так, как написано в програме.
Если Вам надо, чтобы после зажигания идода больше вообще ничего не делалось, то либо сделайте, как советует Tails_MP, либо, ещё проще, поставьте после 9 строки проверку горит - не горит и если горит, выходите из loop() сразу. ЧТо-то типа:
if (digitalRead(ledPin)) return;
а у меня при след замыкании на 5в опять загорается диод и при размыкании тухнет.
Ну, всё правильно, у Вас именно так и написано. Смотрите свой код:
заходим в loop(),
в строке 10 проверяем больше там, чем 1.2 вольта.
если больше, то зажигаем светодиод и выходи (строки 11 и 12)
а если не больше, то продолжаем выполняться и выполняем строку 14 - гасим светодиод.
Т.е. работает в точности так, как написано в програме.
Если Вам надо, чтобы после зажигания идода больше вообще ничего не делалось, то либо сделайте, как советует Tails_MP, либо, ещё проще, поставьте после 9 строки проверку горит - не горит и если горит, выходите из loop() сразу. ЧТо-то типа:
if (digitalRead(ledPin)) return;
спасибо попробую отпишусь!!!
Здравствуйте! Может кто поможет или подскажет куда обратится за пощью! В программировании я вообще 0, можно сказать даже с - ). написал (собрал) вот такой код; (работает))))
вот теперь как вписать сюда еще оставшиеся ШИМ порты Arduino Nano и добавить еще один датчик движения!?
Этот вопрос снят, вроде разобрался! Вот что то не разберусь как от сюда его удалить)))