logo elektroda
logo elektroda
X
logo elektroda
REKLAMA
REKLAMA
Adblock/uBlockOrigin/AdGuard mogą powodować znikanie niektórych postów z powodu nowej reguły.

Integracja kodów Arduino dla sterowania serwem i silnikiem z modułem L298N

jonaszkwasniewski 15 Sty 2024 14:08 375 3
REKLAMA
  • #1 20910726
    jonaszkwasniewski
    Poziom 5  
    Posty: 8
    Witam. Buduję układ mający być sterowaniem w zdalnie sterowanym samochodzie. W skrócie: Sygnał z telefonu idzie do modułu bluetooth hc-06, arduino go odczytuje i daje napięcie i informację o prędkości do modułu l298n który napędza silnik. na podobnej zasadzie działa serwo. Całość zasilana jest z baterii 7,4v. Serwo jest podłączone do baterii przez regulator napięcia, który napięcie zmniejsza do 5v. Problem jest następujący: napisałem dwa osobne programy. Jeden do kontroli serwa, a drugi do silnika. Osobno oba działają jak należy, problem pojawił się gdy połączyłem je w jeden, wtedy działa tylko serwo. W załączonych plikach przesyłam zdjęcia układu jak i program. Z góry dziękuję za pomoc. Rozbudowany układ elektroniczny z Arduino, modułem Bluetooth, serwomechanizmem i laptopem. Układ elektroniczny Arduino z podłączonymi przewodami na płytce stykowej Zdjęcie przedstawia układ elektroniczny z użyciem płytki Arduino i modułu HC-06.

    const int ENA = 8; // Pin PWM dla kanału A
    const int IN1 = 7; // Pin IN1 dla kanału A
    const int IN2 = 6; // Pin IN2 dla kanału A
    #include <Servo.h>
    Servo myservo;
    int pos = 0; // variable to store the servo position
    int motor = 0;

    void setup() {
    pinMode(ENA, OUTPUT);
    pinMode(IN1, OUTPUT);
    pinMode(IN2, OUTPUT);
    Serial.begin(9600);
    myservo.attach(9); // attaches the servo on pin 9 to the servo object

    Serial.print("Arduino control Servo Motor Connected OK");
    Serial.print('\n');
    }
    char znak;
    void loop() {
    if (Serial.available() > 0) {
    znak = Serial.read();
    }
    if (znak == 'W') {
    analogWrite(ENA, 128); // 50% z 255 (128 -9V())
    digitalWrite(IN1, HIGH);
    digitalWrite(IN2, LOW);
    }
    if(znak == 'w'){
    digitalWrite(IN1, LOW);
    digitalWrite(IN2, LOW);
    }
    { motor = Serial.parseInt();

    // do it again:
    pos = Serial.parseInt();

    // look for the newline. That's the end of your sentence:
    if (Serial.read() == '\n') {

    myservo.write(pos); // tell servo to go to position in variable 'pos'
    delay(15); // waits 15ms for the servo to reach the position

    // print the three numbers in one string as hexadecimal:
    Serial.print("Data Response : ");
    Serial.print(motor, DEC);
    Serial.print(pos, DEC);
    }
    }
    }
  • REKLAMA
  • #2 20910946
    gps79
    Poziom 37  
    Posty: 2212
    Pomógł: 495
    Ocena: 798
    Wkleiłeś kod i ten kod się kompiluje i działa tak, jak go napisałeś.
    Zakładasz, że forumowicze siedzą w Twojej głowie i wiedzą, czego oczekujesz od programu, a tak nie jest.
    Trzeba podać konkretne informacje. Piszesz coś o dwóch programach, a ja ich nie widzę.
    BTW, kod podajemy w klamrach "SYNTAX".
  • REKLAMA
  • #3 20911174
    Konto nie istnieje
    Poziom 1  
  • #4 20912637
    jonaszkwasniewski
    Poziom 5  
    Posty: 8
    Dziękuję za pomoc. Spojrzę na te projekty
REKLAMA