Arduino Nano PWM-pin werkt niet

Ik ben een project aan het bouwen met een Arduino Nano. Daarin gebruik ik pin 3 als PWM-uitgang. Als ik er echter waarden aan toevoer die lager zijn dan 255, levert de pin helemaal geen spanning.

Volgens dit diagram is pin 3 PWM:

NANO pinout

Ik heb het op twee borden getest, het werkt niet op beide. Het is ook niet mijn schets (ik heb het getest met een simpele analogWrite();).

Dit is de code:

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); } 

Wat zou de reden hiervan kunnen zijn?

Reacties

  • Verzoek om verplaatsing naar de arduino stackexchange
  • @JorenVaes hoe doe ik dit?
  • Geen code weergegeven. Waar moeten we dan in vredesnaam over speculeren?
  • Sorry, @Bort voegde de code toe.
  • Probeer #define E1 3 te vervangen door #define E1 PD3 en kijk of dat helpt.

Answer

Probeer #define E1 3 te vervangen door #define E1 PD3 en kijk of dat helpt.

De PBx, PCx en PDx aanduidingen zijn ondubbelzinnig, dus het gebruik ervan is een vrij veilige gok.

Opmerkingen

  • Dit is absoluut een verkeerd advies. Arduino-functies gebruiken Arduino-pincodes. In dit geval werkte het toevallig omdat PD3 #define d is als 3 en het Arduino-pinnummer ook 3. Probeer PB2 in plaats van de Arduino-pincode 10 als je me niet ' gelooft. Ze zijn niet eens eenduidig. Deze aanduidingen zijn alleen gedefinieerd als de bitnummers (bijv. PB3 is ook 3).

Antwoord

De derde pin (pin 3) is geen PWM-pin, het is de RESET pin.

De PWM-pinnen zijn 6, 8, 9, 12, 13 en 14 (voor Arduino Nano).

Zie deze afbeelding :

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

Reacties

  • Verkorte URL verwijst door naar afbeeldingen. google.co.in/… dus het heeft niet veel zin om het te vervangen.
  • @Carolene volgens het schema gegeven door het OP, pin 3 betekent digitale pin 3 = PORTD 3. Het deel van je antwoord " De PWM-pinnen zijn 6, 8, 9, 12, 13 en 14 (voor Arduino Nano) " is volledig misleidend.

Antwoord

Vervang digitalWrite door analogWrite (pin, value )

Reacties

  • Ik ' weet niet zeker waarom je denkt dat dit zou werken. Heb je het geaccepteerde antwoord hierboven of de opmerkingen onder de vraag gelezen?

Antwoord

Gebruik pinMode(NNN, OUTPUT) at setup()?

Reacties

  • Hallo Denis, en welkom naar Stack Exchange! Hoewel u misschien gelijk heeft, kunt u uw antwoord nader toelichten, want zoals het er nu uitziet, zou het geschikter zijn als commentaar. Lees Hoe schrijf ik een goed antwoord?
  • Dit is een goed antwoord, de PIN-MODUS ontbreekt.

Geef een reactie

Het e-mailadres wordt niet gepubliceerd. Vereiste velden zijn gemarkeerd met *