Выходное напряжение на портах

benzhek
Offline
Зарегистрирован: 08.11.2015

Здрасте всем!

Прошу не судить строго - я начинающий.

Купил Arduino Uno на  Aliexpress. Подключил светодиоды, написал программу - все ОК. потом решил проверить все выхода порт Б и Д. 

Напряжение на выходах порта Б  в лог "1" - 5В, а напряжение в логической единицы порта Д - 3.3В.

Почему так происходит подскажите.

jeka_tm
jeka_tm аватар
Offline
Зарегистрирован: 19.05.2013

все пины порта D и B так себя ведут?

benzhek
Offline
Зарегистрирован: 08.11.2015

Да все пины

на порту Б 5вб а на порту Д 3.3в 

jeka_tm
jeka_tm аватар
Offline
Зарегистрирован: 19.05.2013

а к портам что нибудь при этом подключено?

dimax
dimax аватар
Offline
Зарегистрирован: 25.12.2013

jeka_tm, я бы сразу спросил товарища о методике тестирования и проверочном скетче ) Любопытно конечно, что нужно сделать не так, чтоб получить 3 вольта. Из первого, что пришло на ум - пин сделать как input_pullup, и подключить светодиод. Как раз 3 вольта, которые оседают на светодиоде останутся, остальные 2 вольта рассеет резистор подтяжки.

jeka_tm
jeka_tm аватар
Offline
Зарегистрирован: 19.05.2013

ага. такая же мысль возникла что там что то висит

benzhek
Offline
Зарегистрирован: 08.11.2015

Стандартная программа мигания

 

pinMode(12, OUTPUT);

digitalWrite(12, HIGH);   // зажигаем светодиод
  delay(1000);              // ждем секунду
  digitalWrite(12, LOW);    // выключаем светодиод

  delay(1000);              // ждем секунду

и так для 12,11,10,9,8 а далее 7,6,5,4,3  всё делал копированием. как раз 5 разных светодиодов подключенных через сопротивление (все сопротивления одинаковые). 

А если забыть в void setup pinmode - будет записывать на выход 1 и 0? Сейчас посмотреть не могу программа дома, а я на работе.

 

jeka_tm
jeka_tm аватар
Offline
Зарегистрирован: 19.05.2013

странно. без светодиодов все нормально или нет? как со светодиодами? какие светодиоды? если светодиоды подцепить на 12, 11 и 7, 6 какое напряжение со светодиодами

а вообще ты помоему голову тут морочишь

Jeka_M
Jeka_M аватар
Offline
Зарегистрирован: 06.07.2014

benzhek пишет:

А если забыть в void setup pinmode - будет записывать на выход 1 и 0? 

Ничего не будет на выход записывать. Потому что выхода не будет, будет вход.  При digitalWrite(12, LOW) будет плавающий (высокоимпедансный, Hi-Z) вход. При digitalWrite(12, HIGH) - включится подтяжка к питанию (Pull-Up), при которой через подтягивающий резистор пойдёт небольшой ток и светодиод может еле заметно светиться.

 

dimax
dimax аватар
Offline
Зарегистрирован: 25.12.2013

benzhek пишет:

А если забыть в void setup pinmode - будет записывать на выход 1 и 0? Сейчас посмотреть не могу программа дома, а я на работе

Если забыть pinMode, то будет именно то, что вы и наблюдали. На выходе будет 3 вольта, светодиод либо не светится, либо едва светится.

Вы можете "мигать" одновременно всеми выводами обоих портов. В сетапе пропишите DDRB=0xFF; DDRD=0xFF; В loop такую команду: PORTB=~PORTB; PORTD=~PORTD; delay(1000);

benzhek
Offline
Зарегистрирован: 08.11.2015

Всем спасибо, так и получилось не прописаны выхода в void setup. Тему можно считать закрытой.

 

Еще раз всем спасибо.

jeka_tm
jeka_tm аватар
Offline
Зарегистрирован: 19.05.2013

))) мда

kisoft
kisoft аватар
Offline
Зарегистрирован: 13.11.2012

Ну вот, даже попкорна не поел, жаль