Arduino Polska Forum

Pełna wersja: Arduino Mega 2560 PROBLEM
Aktualnie przeglądasz uproszczoną wersję forum. Kliknij tutaj, by zobaczyć wersję z pełnym formatowaniem.
Witam szanowne grono.
Mam problem z moją MEGA 2560 (klon).
Zaczynam przygodę z Arduino (totalny laik), i zatrzymałem się na następującym problemie:
podstawowy program sterujący silnikiem DC poprzez mostekH (typowy L298N, link:  L289N )
Problem polega na tym, że program wgrywany najnowszym Arduino IDE nie działa: program kompiluje się, zostaje wysłany do Arduino, silnik nie startuje.
Natomiast kompilowany (to chyba takie słowo?) i wysłany do płytki programem Arduino 1.6.5 działa zupełnie tak jak się tego spodziewam. Wszystkie inne wersje poniżej v.1.6.5 działają prawidłowo, a powyżej v.1.6.5 - nie działają (sprawdziłem wszystkie).
Problem występuje na Arduino Mega 2560. Na Arduino Due już nie.
Najprawdopodobniej przyczyną jest funkcja analogWrite(pin,wartość) która jest źle interpretowana przez nowsze Arduino IDE dla płytki Mega 2560.
Przy wykorzystaniu nowszego programu oraz funkcji analogWrite (zatrzymuję silnik PWM-em), silnik kręci się wyłącznie od wartości PWM=130 do 255. Ten sam program wysłany przez Arduino IDE 1.6.5, działa zupełnie prawidłowo, tj. silnik kręci się w pełnym zakresie PWM.
Dodam, że sprawdziłem piny od 1 do 13 i zawsze efekt jest taki sam.
Chciałbym korzystać z najnowszego Arduino IDE, ale przedstawiona powyżej przypadłość mi to uniemożliwia.
Nad problemem spędziłem kilka godzin i nie wiem jak sobie z tym poradzić.
A ponadto, jeżeli taki początkujący jak ja znalazł taki błąd, to czy nie ma takich błędów więcej. 
Czy któryś z kolegów spotkał się z takim problemem? 

Program:
void setup()
{
  pinMode(8, OUTPUT);
  pinMode(9, OUTPUT);
  pinMode(10, OUTPUT);
 
}

void loop()
{
 
// Obroty silnika w PRAWO.

  digitalWrite(8, HIGH); 
  digitalWrite(9, LOW);
  analogWrite(10,40);
  delay(1500);
 
// Zatrzymanie silnika.

  digitalWrite(8, HIGH);
  digitalWrite(9, HIGH);
  analogWrite(10,0);      // analogWrite(10,0) -->> "miękkie" zatrzymanie silnika; analogWrite(10,255) -->> "twarde" zatrzymanie silnika.
  delay(1500);

// Obroty silnika w LEWO/
 
  digitalWrite(8, LOW);
  digitalWrite(9, HIGH);
  analogWrite(10,40);
  delay(1500);

// Zatrzymanie silnika.
 
  digitalWrite(8, HIGH);
  digitalWrite(9, HIGH);
  analogWrite(10,0);
  delay(1500);
}


Jeżeli ktoś ma Mega 2560, proszę o przetestowanie, czy u niego też występuje taki problem.
A czy czasem MEGA 2560 (klon) nie jest na 3,3V?? podaj jego zdjęcia...
Skoro hardware działa na innej wersji IDE, więc nie napięcie jest chyba przyczyną.
(04-02-2020, 18:17)Agregacik napisał(a): [ -> ]Skoro hardware działa na innej wersji IDE, więc nie napięcie jest chyba przyczyną.
Tak jak pisze Agregacik.
To nie jest problem sprzętowy.

Foty płytki.