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:
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
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.
PD3
#define
d is als 3 en het Arduino-pinnummer ook 3. ProbeerPB2
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).