Опрос дискретных выходов

Vadim0312
Offline
Зарегистрирован: 27.11.2016

Прошу подсказать какой функцие

Клапауций 823
Клапауций 823 аватар
Offline
Зарегистрирован: 13.01.2017
Vadim0312
Offline
Зарегистрирован: 27.11.2016

Прошу подсказать какой функцией можно сделать опрос состояния выходом. Скетч очень длинный поэтому не буду приводить. Только понадобилось использовать состояние выходов без изменения ихнего состояния.

Клапауций 823
Клапауций 823 аватар
Offline
Зарегистрирован: 13.01.2017

Vadim0312 пишет:

Прошу подсказать какой функцией можно сделать опрос состояния выходом. Скетч очень длинный поэтому не буду приводить. Только понадобилось использовать состояние выходов без изменения ихнего состояния.

digitalRead()

qwone
qwone аватар
Offline
Зарегистрирован: 03.07.2016

Vadim0312 пишет:

Прошу подсказать какой функцией можно сделать опрос состояния выходом. Скетч очень длинный поэтому не буду приводить. Только понадобилось использовать состояние выходов без изменения ихнего состояния.

Вы что не знаете , что отправляете на выход? Заведите переменную и отправляете туда тоже, что и на выход. И тогда читать свой собственный выход не придется.

Vadim0312
Offline
Зарегистрирован: 27.11.2016

Это тогда мне понадобится сначала прописать выход, потом прописать выход как вход, считать его состояние, а потом опять прописать его как выход...угу?? Но на выходе выдается 1 и он активен. А если я сделаю его входом, 1 снимется . Сечас проверю. :-)

qwone
qwone аватар
Offline
Зарегистрирован: 03.07.2016

@^@

const byte Led_pin = 13;
bool Led = 0;
setup() {
  pinMode(Led_pin, OUTPUT);
}
void loop() {
  digitalWrite(Led_pin, Led = !Led);
  delay(1000);
}

 

Vadim0312
Offline
Зарегистрирован: 27.11.2016
pinMode(5,INPUT);
 Serial.println( digitalRead(5));
  delay (50);
  pinMode(5,OUTPUT);
// значение выхода не сохраняется

 

qwone
qwone аватар
Offline
Зарегистрирован: 03.07.2016
const byte Led_pin = 13;
void setup() { 
  pinMode(Led_pin, OUTPUT);
}
void loop() {
  digitalWrite(Led_pin, ! digitalRead(Led_pin));
  delay(1000);
}
Vadim0312
Offline
Зарегистрирован: 27.11.2016

все равно пропадает значение на выходе...

 

ЕвгенийП
ЕвгенийП аватар
Offline
Зарегистрирован: 25.05.2015

Vadim0312 пишет:

Это тогда мне понадобится сначала прописать выход, потом прописать выход как вход, считать его состояние, а потом опять прописать его как выход...угу??

НАХРЕНА??????

Вам дважды сказали, используйте digitalRead и не мудрствуйте лукаво. Он отлично работает с любыми пинами, хоть INPUT, хоть OUTPUT. Просто используйте digitalRead и не парьтесь.

Клапауций 823
Клапауций 823 аватар
Offline
Зарегистрирован: 13.01.2017

ЕвгенийП пишет:

Просто используйте digitalRead и не парьтесь.

я запретил.

Vadim0312
Offline
Зарегистрирован: 27.11.2016

Прищлось сделать виртуальные порты и считывать состояние портов с них. На прямую не получается...упс..

ЕвгенийП
ЕвгенийП аватар
Offline
Зарегистрирован: 25.05.2015

Vadim0312 пишет:

Прищлось сделать виртуальные порты и считывать состояние портов с них. На прямую не получается...упс..

«Дуб годится на паркет, так ведь нет!»

bwn
Offline
Зарегистрирован: 25.08.2014

ЕвгенийП пишет:

Vadim0312 пишет:

Прищлось сделать виртуальные порты и считывать состояние портов с них. На прямую не получается...упс..

«Дуб годится на паркет, так ведь нет!»

Упертый ТС, однако.

AlexeySh
Offline
Зарегистрирован: 16.01.2017

Ну как не получается?

Откройте документацию и прочитайте. Там черным по белому написано, что digitalRead() читает состояние с любого цифрового вывода. Т. е. хоть вход, хоть выход. Там даже пример есть чтения как со входа, так и с выхода.

andriano
andriano аватар
Offline
Зарегистрирован: 20.06.2015

AlexeySh пишет:

Откройте документацию и прочитайте.

Так где Вы видите читателей? Здесь - все писатели.

ЕвгенийП
ЕвгенийП аватар
Offline
Зарегистрирован: 25.05.2015

bwn пишет:

Упертый ТС, однако.

А что, нормальное решение. Делаешь виртуальные порты. Чтобы автоматиески обновлялись, сажаешь их на INT прерывание - всё круто! Куда круче, чем тупо значения читать!

bwn
Offline
Зарегистрирован: 25.08.2014

ЕвгенийП пишет:

Делаешь виртуальные порты. Чтобы автоматиески обновлялись, сажаешь их на INT прерывание - всё круто! Куда круче, чем тупо значения читать!

Знаю более сильное кодунство. 580ВВ55, порт не виртуальный, а материальный. (Так до него и не добрался(((). Коннектим его к выходам Ардуины, а с него уже и считываем значения. От тут уже все охренеют.)))

nik182
Offline
Зарегистрирован: 04.05.2015

AlexeySh пишет:

Ну как не получается?

Откройте документацию и прочитайте. Там черным по белому написано, что digitalRead() читает состояние с любого цифрового вывода. Т. е. хоть вход, хоть выход. Там даже пример есть чтения как со входа, так и с выхода.


Больше того. Даже аналогового тоже читает.