O pino PWM do Arduino Nano não está funcionando

Estou construindo um projeto usando um Arduino Nano. Nele, estou usando o pino 3 como saída PWM. No entanto, se eu fornecer valores menores que 255 para ele, o pino não emitirá nenhuma tensão.

De acordo com este diagrama, o pino 3 é PWM:

Pinagem NANO

Eu testei em duas placas, não funciona em nenhuma delas. Também não é meu esboço (testei com um simples analogWrite();).

Este é o código:

void setup() { // put your setup code here, to run once: #define E1 3 // Enable Pin for motor 1 #define E2 10 // Enable Pin for motor 2 #define I1 4 // Control pin 1 for motor 1 #define I2 2 // Control pin 2 for motor 1 #define I3 A1 // Control pin 1 for motor 2 #define I4 A0 // Control pin 2 for motor 2 } void loop() { // put your main code here, to run repeatedly: // I use differential steering, speed is important analogWrite(E1, 100); // Run in full speed analogWrite(E2, 100); // Run in full speed // always go forward digitalWrite(I1, LOW); digitalWrite(I2, HIGH); digitalWrite(I3, LOW); digitalWrite(I4, HIGH); } 

Qual poderia ser a razão disso?

Comentários

  • Solicite que seja movido para o arduino stackexchange
  • @JorenVaes como faço isso?
  • Nenhum código mostrado. Sobre o que deveríamos especular então?
  • @Bort desculpe, adicionou o código.
  • Tente substituir #define E1 3 por #define E1 PD3 e veja se isso ajuda.

Resposta

Tente substituir #define E1 3 por #define E1 PD3 e veja se isso ajuda.

O PBx, PCx e PDx designações não são ambíguas, então usá-las é uma aposta segura.

Comentários

  • Este é um conselho absolutamente errado. As funções do Arduino usam os números de pinos do Arduino. Neste caso, funcionou porque PD3 é #define d como 3 e o número do pino do Arduino também é 3. Tente usar PB2 em vez do pino número 10 do Arduino, se você não ' acreditar em mim. Eles não são nem mesmo inequívocos. Esses designadores são definidos apenas como números de bits (por exemplo, PB3 também é 3).

Resposta

O terceiro pino (pino 3) não é um pino PWM, é o pino RESET.

Os pinos PWM são 6, 8, 9, 12, 13 e 14 (para Arduino Nano).

Veja esta imagem :

mg src = “https://i.stack.imgur.com/8flVu.png” alt = “Nano pinout” title = “Nano pinout”>

Comentários

  • URL encurtado redireciona para imagens. google.co.in/… então não faz muito sentido substituí-lo.
  • @Carolene de acordo com o esquema dado pelo OP, pino 3 significa pino digital 3 = PORTD 3. A parte da sua resposta " Os pinos PWM são 6, 8, 9, 12, 13 e 14 (para Arduino Nano) " é completamente enganoso.

Resposta

Substitua digitalWrite por analogWrite (pin, valor )

Comentários

  • Eu ' Não tenho certeza de por que você acha que isso funcionaria. Você leu a resposta aceita acima ou os comentários abaixo da pergunta?

Resposta

Use pinMode(NNN, OUTPUT) em setup()?

Comentários

  • Olá, Denis, e bem-vindo para empilhar o Exchange! Embora você possa estar correto, expanda sua resposta, porque, do jeito que está, seria mais adequado como um comentário. Leia Como escrevo uma boa resposta?
  • Esta é uma boa resposta, falta o MODO PIN.

Deixe uma resposta

O seu endereço de email não será publicado. Campos obrigatórios marcados com *