Считывание со входа
- Войдите на сайт для отправки комментариев
Пт, 15/09/2017 - 15:27
Подскажите пожалуйста, что ни так !
Соединил 13 выход с аналоговым входом А3 пеермычкой, ну и написал такое вот чудо...и не работает и не могу понять что ни так то сделал ?
int ledPin = 13; int readPin = A3; void setup() { // put your setup code here, to run once: pinMode(ledPin, OUTPUT); } void loop() { int k = 50; for (int i = 0; i < k ; i++){ if(readPin == LOW){ digitalWrite(ledPin,HIGH); delay(500); } else{ digitalWrite(ledPin,LOW); delay(500); } } }
немного поправил :
Почему не работает? Работает - светодиод не горит никогда (ну, может иногда вдруг разок-другой вспыхивает). Так и должно быть.
А Вы чего ожидали? Как по Вашему оно должно "работать"?
опиши словами алгоритм работы своего устройства
вобще я хотел просто попробывать считать сигнал с 13 выхода на аналоговом А3 входе и относительно того высокий он или низкий менять его значение в цикле на обратное ! ну короче типа мигание диода, но в моей интерпритации )
по моему должно 50 раз сменить значение с задержкой в 1 сек примерно
int a внутрь for()
ой ! спасибо большое ) работает )
Но вообще, надёжно всё равно работать не будет. Не сравнивайте нагло с LOW, а сделайте хотя бы там < 50 что-ли. Там по идее, конечно, 0, но на апрактике может оказаться и 1 или 2.
по моему должно 50 раз сменить значение с задержкой в 1 сек примерно
вы читаете значение с пина только один раз - до входа в цикл, поэтому внутри цикла у вас исполняется только ветка if и никогда else
))) видел, что сигнал на аналоговом входе раскладывается АЦП по напряжению на уровни. но не подумл , спс !
сделал небольшую правку, что бы отследить скок раз цикл выполняется. так вот он выполняется всего 5 раз вместо 10 почему то ?
сделал небольшую правку, что бы отследить скок раз цикл выполняется. так вот он выполняется всего 5 раз вместо 10 почему то ?
5 раз загорелся светодиод + 5 раз погас светодиод = 10 раз всего
ООО ну я ТУП ) спс
ООО ну я ТУП
Это название предприятия? Типа Общесто с ограниченной ответственностью? :)
я боюсь разрушить хрупкую модель мира у ТС, но если 12 строку заменить на:
то ВООБЩЕ НИЧЕГО НЕ ИЗМЕНИТСЯ.
то ВООБЩЕ НИЧЕГО НЕ ИЗМЕНИТСЯ.
Ну как же, ничего?!? Придётся возвращаться к сравнению с LOW, а то для "<50" глубоко фиолетово (я бы даже сказал "ультрафиолетово") LOW там или HIGH.
я боюсь разрушить хрупкую модель мира у ТС, но если 12 строку заменить на:
то ВООБЩЕ НИЧЕГО НЕ ИЗМЕНИТСЯ.
если ВСЁ заметить на digitalWrite(13, (millis() / 500) & 1);, то ВСЁ УЛУЧШИТСЯ.
ну... если уж так гулять, то 500 это почти 512. И тогда:
ну... если уж так гулять, то 500 это почти 512. И тогда:
digitalWrite(13, (millis() >> 9) & 1);
Так, завязываем флуд пока не набежали Свидетели Святого Переполнения и привлекли вас за оскорбление чувств верующих!
Так, завязываем флуд пока не набежали Свидетели Святого Переполнения и привлекли вас за оскорбление чувств верующих!
набегут - сбросим еретиков в пропасть на съедение дикими жывотными.
А почему ? Это ведь аналоговый вход по умолчанию, даже на плате написано !
Да и это предприятие я ношу на плечах ежедневно...вот сейчас запускаю на этом предприятии цех по работе с arduino ))) а название такое, что бы пон7имали куда обращаются и знали чего ожидать )))
А почему ? Это ведь аналоговый вход по умолчанию, даже на плате написано !
нарисую на заборе х..
ну я ток начинаю изучать только первый день...как бы по описанию это аналоговый вход и для него есть функкции analogRead и analogWrite тоесть что бы считывать покахзания с датчиков ! Или при считывании показаний с датчиков тоже можно будет писать analogRead или digitalRead ?
А почему ? Это ведь аналоговый вход по умолчанию, даже на плате написано !
Вах! Дарагой! Зачем тебе АНАЛоговый вход? Ти цифровой вход пишешь, да? Ти его и читай, да?! Куда пишешь, там и читаешь...
А то анал-шманал.... нехорошо... нэ эстетично, да? Хотя эсть отдельные лубитэли... Но это нэ наш мэтод!
не понял.
Вообще у меня была идея считать значение цифрового выхода 13 к которому подключен диод...но так разве можно ? если можно то как ? то есть можно считывать тот уровень сигнала на выходе который к нему подан не использую ещё один вход ?
ну я ток начинаю изучать
Вот когда изучите ещё и напряжение с сопротивлением и частотой, тогда будете знать, что аналоговые входы вполне могут (если тренируются, конечно) работать цифровыми выходами :)))
и как же аналоговый вход переопределить в цифровой выход ? и зачем это ? если например я могу тогда уж сигнал с цифрового выхода 13 считывать просто скажем на 11 пине , верно ?
или это просто будет правильнее что бы уровни LOW и HIGH были более верными ?
не понял.
Вообще у меня была идея считать значение цифрового выхода 13 к которому подключен диод...но так разве можно ? если можно то как ? то есть можно считывать тот уровень сигнала на выходе который к нему подан не использую ещё один вход ?
конечно можно, про то тебе и пишут и поэтому и глумятся... нельзя же быть таким дремучим!
ну подскажи пожалуйста как ?
и как же аналоговый вход переопределить в цифровой выход ? и зачем это ? если например я могу тогда уж сигнал с цифрового выхода 13 считывать просто скажем на 11 пине , верно ?
или это просто будет правильнее что бы уровни LOW и HIGH были более верными ?
ок. объясни, зачем ты пытаешься считать значение одного пина другим пином в контексте одного контроллера?
оптимально было бы считывать значение с 13-го пина и... всё
и как же аналоговый вход переопределить в цифровой выход ? и зачем это ? если например я могу тогда уж сигнал с цифрового выхода 13 считывать просто скажем на 11 пине , верно ?
или это просто будет правильнее что бы уровни LOW и HIGH были более верными ?
родное сердце! Ну зачем тебе читать то, что сам написал, с другой ноги? Неужели ты думаешь, что нельзя прочесть то, что сам написал, там же? Как бы такое могло вообще существовать???
потмоу что я пробывал изначльно считать, но потом мне сказали, что так нельзя...вот и стал делать иначе !
потмоу что я пробывал изначльно считать, но потом мне сказали, что так нельзя...вот и стал делать иначе !
поймай того, кто тебе это сказал и дай ему пиздюлей!.gif)
тоже не спец в этом деле человек...просто подал идею, что можно считать с иного входа сигнал. так я и начал делать по такому принципу.
а можно наверно тупо так что ли ?
так что ли ? или наврено есть какой то оператор инвертирования сигнала и будет ещё короче код ?
как можно читать аналоговый сигнал с цифрового пина?
поправил колд...сорри )
я же тебе дал рабочий код - заверни его в цикл, если тебе хочется, что бы он сработал 10 раз
вот же у тебя есть блинк прямо на том сайте.
я это делал ! но я хочу сделать по своему !
скажите как считать сигнал с того же выхода куда он и подан )
я это делал ! но я хочу сделать по своему !
ок. иди найух и делай там по своему.
и да, инвертирование есть, но ты до него еще долго не дойдешь.
избранное из даташита. ;) нужное я выделил:
I/O memory address locations are allocated for each port, one each for the Data Register – PORTx, Data
Direction Register – DDRx, and the Port Input Pins – PINx. The Port Input Pins I/O location is read only,
while the Data Register and the Data Direction Register are read/write. However, writing '1' to a bit in the
PINx Register will result in a toggle in the corresponding bit in the Data Register.
какой ты нервный )
я твой код вообще не понимаю...ты что то написал такое и не пояснил даже...я же тут не для того что бы списывать,а для того что бы разобраться !
а дальше тебе начали отвечать ещё более умные )
я твой код вообще не понимаю...
бита и наручники стоят 100$
Вот. Что еще тебе не понятно.?
спасибо ! выкладываю свой самый первый код проги ! где была такая же идея считать сигнал на выходе !
так что не обзывайтесь )
так что не обзывайтесь )
А собственно, почему? Пятница, настроение хорошее!
Пятница, настроение хорошее!
Я, хоть и "выкрест", но, не побоюсь этого слова: "Шабат шалом!"