analogWrite(3,0) выдает 1.5В вместо 0В

lotek93
Offline
Зарегистрирован: 20.03.2013

При том, что остальные ШИМ-пины выдают ожидаемый ноль.

Это нормально? И есть ли способы это побороть?

Arduino UNO R3. Питание как от USB, так и внешнее от батарейки.

maksim
Offline
Зарегистрирован: 12.02.2012

Это не нормально. Что у вас еще подключено к этому выводу? И покажите ВЕСЬ код.

lotek93
Offline
Зарегистрирован: 20.03.2013
void setup()  { 
  analogWrite( 3, 0 );
  analogWrite( 5, 0 );
  analogWrite( 6, 255 );
} 

void loop()  { 
}

Когда проверял - ничего не было подключено. Ну, кроме вольтметра.

Только что перепрошил и измерил еще раз: пин 3 выдает 1.43В, пин 5 - 0.01В, пин 6 - 4,79В

Было ли так изначально, не знаю.

Незадолго до этого экспериментировал с управлением моторами через полевой транзистор, не знаю, могло ли как-то повлиять.

 

maksim
Offline
Зарегистрирован: 12.02.2012

Ну если только как-нибудь частично сожгли ногу.

lotek93
Offline
Зарегистрирован: 20.03.2013

( Частично, а как такое возможно? )

В любом случае, спасибо за ответ, будем думать, как теперь обойтись без 3-го пина

nestandart
nestandart аватар
Offline
Зарегистрирован: 15.06.2011

>>( Частично, а как такое возможно? )<<

Возможно и не такое. 

Возможно вы случайно коротнули затвор и сток мосфета. И какое то время мотор питался через пин.

Проверьте пин функциями digitalWrite , сответственно LOW и HIGH. Измерьте потребляемый ток всей платы ( к пинам ничего не подключено).

lotek93
Offline
Зарегистрирован: 20.03.2013
void setup(){
}

void loop(){
  digitalWrite( 3, HIGH );
  digitalWrite( 5, HIGH );
  delay(2000);
  digitalWrite( 3, LOW );
  digitalWrite( 5, LOW );
  delay(2000);
}  

5й пин переключается нормально, 3й все время выдает 4.8В

leshak
Offline
Зарегистрирован: 29.09.2011

Похоже что для 3-тьего пина "все грустно" и уже ничего с этим не сделаешь.

А что-бы понять "как такое возможно", то почитайте статью 

AVR. Учебный курс. Устройство и работа портов ввода-вывода | Электроника для всех

К примеру если пробъет диод от порта I/O к VCC (вторая картинка в статье, слева, верхний диод) - будет такая картина. Возможно еще варианты "как сгореть могло" - могут быть.

И... как советовали выше - померте потребялемый ток всей платы. Что-бы решить для себя "просто не использовать пин" или "все-таки менять камень".

И digitalWrite(3,LOW) - лучше уже на него не делать, потому как это может привести к КЗ и дальнейшему выгоранию камня, питалава и т.п.

lotek93
Offline
Зарегистрирован: 20.03.2013

Понял, спасибо, будем курить доки.

Делаю квадрокоптер, но на всю периферию по полной программе, похоже, все равно пинов не хватает. Так что пока домучаю Уно, потом перейду на что-нибудь более подходящее.

leshak
Offline
Зарегистрирован: 29.09.2011

lotek93 пишет:

Так что пока домучаю Уно, потом перейду на что-нибудь более подходящее.

Не обязательно. В зависимости от  ситуации (цифровых не хватает или Pwm, как часто переключать нужно и т.п.) - можно обойтись и сдвиговыми регистрами (см.  в разделе программирование статью "использование сдвигового..."). Для PWM тоже есть порто-расширители (отдельная микруха).

Вообщем поищите по форуму темы про увеличение количества выводов.

nestandart
nestandart аватар
Offline
Зарегистрирован: 15.06.2011

>>Для PWM тоже есть порто-расширители (отдельная микруха).<<

А можно подробней ? Ссылку например.

lotek93
Offline
Зарегистрирован: 20.03.2013

leshak пишет:

Вообщем поищите по форуму темы про увеличение количества выводов.

Можно и так, но, честно говоря, хочется минимизировать количество деталей и время на пайку.

leshak
Offline
Зарегистрирован: 29.09.2011

nestandart пишет:

>>Для PWM тоже есть порто-расширители (отдельная микруха).<<

А можно подробней ? Ссылку например.

Сдвиговые регистры и ШИМ | Аппаратная платформа Arduino