Благодарю вас за науку.
Всем привет! Попробовал ваш скетч всё отлично работает. Не понял как строка while даёт указание на отключение светодиода??
нда…
видимо надо было так
const int RE = A0;//подключаю реостат
const int BU = 7;//подключаю комп
int val = 0;// переменная для хранения RE
const int OUT = 3;// выход
void setup() {
pinMode (OUT, OUTPUT); // пин на выход
pinMode (BU, INPUT_PULLUP); // пин на вход с подтяжкой к +
}
void loop() {
if (digitalRead(BU) == LOW) { //если кнопку нажали
digitalWrite(OUT, HIGH); //зажигаем светодиод
delay(2); // ждем 2 миллисекунды
digitalWrite(OUT, LOW); // гасим светодиод
while(digitalRead(BU) == LOW); // ждем пока не отпустят кнопку
}
}
Я понял зачем я не понял пока как. Сейчас об этом читаю в повести.
Тебя обманули, когда сказали что Ардуино - это просто.
ЗЫ: А вообще на будущее не запоминай, а запиши - «В программировании микроконтроллеров (в частности) - нужно разделять «телодвижения», тогда проблем не будет.
В своем городе, Ватсон!
Только не пытайтесь найти “Курсы по Ардуино”.
Курсы должны называться “по программированию”, и “по схемотехнике”.
Если у Вас есть в/о, можно попытаться подучиться по учебникам. В первом случае это Шилдт и Керниган-Ритчи, во втором - Хоровиц-Хилл и Титце-Шенк.
Всем привет. Вопрос в каком разделе писать описание реостата? Например если Программный код
if (val ==256){ delay(10);
}
Вообще я правильно пишу?
[quote="Juzame, post:28, topic:17413"]
if (val ==256){ delay(10);
}
[/quote]
И если реостат разбит на 20ть значений, то каждое значение надо прописывать подобным образом?
Попробовал вот так ничего не получается.`const int RE = A0;//подключаю реостат
const int BU = 7;//подключаю комп
int val = 0;// переменная для хранения RE
const int OUT = 4;// выход
void setup() {
pinMode (OUT, OUTPUT);
pinMode(BU, INPUT_PULLUP);
}
void loop() {
val = analogRead(RE);
if (val > 100){delay(2);}
if (val > 200){delay(30);}
if (val > 300){delay(4);}
if (val > 400){delay(5);}
if (val > 500){delay(6);}
if (val > 600){delay(7);}
if (val > 700){delay(8);}
if (val > 800){delay(500);}
while(digitalRead(BU) == LOW){
digitalWrite(OUT,HIGH);
delay(2);
digitalWrite(OUT,LOW);
while(digitalRead(BU)== LOW);
}
}`
const int RE = A0;//подключаю реостат
const int BU = 7;//подключаю комп
int val = 0;// переменная для хранения RE
const int OUT = 4;// выход
void setup() {
pinMode (OUT, OUTPUT);
pinMode(BU, INPUT_PULLUP);
}
void loop() {
val = analogRead(RE);
if (val > 100){delay(2);}
if (val > 200){delay(30);}
if (val > 300){delay(4);}
if (val > 400){delay(5);}
if (val > 500){delay(6);}
if (val > 600){delay(7);}
if (val > 700){delay(8);}
if (val > 800){delay(500);}
while(digitalRead(BU) == LOW){
digitalWrite(OUT,HIGH);
delay(2);
digitalWrite(OUT,LOW);
while(digitalRead(BU)== LOW);
}
}
у тя как с логикой, чудо?
1.Посмотрите описание функции map()
2. Функция delay() способна принимать переменную, т.е. может вычисляться “на лету”
Всем Hi. Он же Шалом. Дим-мычъ по вашему ЦУ прописал MAP. Всё работает! Огомное вам “От души!” Вопрос разрешение у delay не меняется? Только micros?
Это шарада?
Нет это “Краткость-сестра таланта”)). Я о разрешении delay, минимум это одна милисекунда? То-есть нельзя сделать 3,472 мили секунды?
Мили секунда это достаточно долго)).
= 5587,6424 метра.
Одним словом с двумя Л!
можно, если задавать задержку в МИКРО-секундах
Как - смотрите в справочнике по командам Ардуино