Dansk Elektronik Forum

Generel Elektronik => Arduino & Lign. => Emne startet af: henrik13 efter Maj 29, 2024, 13:03:26

Titel: motor projekt
Indlæg af: henrik13 efter Maj 29, 2024, 13:03:26
hej alle
tak for medlemskabet.

jeg er igang med et projekt hvor jeg har et emne som har 2 motor, motor 1 skal køre frem og tilbage hvor motor 2 skal køre samme vej hele tiden.
emnet skal køre frem til det rammer en endestop/kontakt som får motor 1 til og køre tilbage ind til kontakt 2 rammes hvor begge motor skal stoppe. motor 2 skal køre samme omløbretning hele tiden.

har lavet et program i Arduino hvor det ser ud til og virke med min uno board, hul plade hvor der er sat de 2 kontakter på og 3 dioder hvor de 2 er motor 1 frem og tilbage, og en diode til at simulere motor 2 er tændt hele tiden.

når jeg samler det med motor på l298n driver så virker det ikke, er lidt i tvivl om det er de 2 kontakter som driller da de stadig sidder på hul pladen, så opsætningen ser sådan ud:

uno bord gnd til l298n, 5 vold til l298n, fra l298n 5 volt til bord (2 kontakter) ground fra uno til borad (2 kontakter), uno outpins til l298n som passer med programmet.

jeg vil ikke have loop på da programmet kun skal køre frem til og stoppe, da det i loop bliver ved med og køre.

evt nogle som har et bud på hvordan jeg får det til og virke?


const int motor1ForwardPin = 2;
const int motor1BackwardPin = 3;
const int motor2Pin = 4;
const int contact1Pin = 5;
const int contact2Pin = 6;

void setup() {
  // put pin-mode for motorer og contact
  pinMode(motor1ForwardPin, OUTPUT);
  pinMode(motor1BackwardPin, OUTPUT);
  pinMode(motor2Pin, OUTPUT);
  pinMode(contact1Pin, INPUT_PULLUP);
  pinMode(contact2Pin, INPUT_PULLUP);



 
  // motor 1 forward, until contact 1 hits
  while (digitalRead(contact1Pin) == LOW) {
    digitalWrite(motor1ForwardPin, HIGH);
    digitalWrite(motor1BackwardPin, LOW);
  digitalWrite(motor2Pin, HIGH);

  }



  // motor 1 drivning bag until concact 2 har hit
  while (digitalRead(contact2Pin) == LOW) {
    digitalWrite(motor1ForwardPin, LOW);
    digitalWrite(motor1BackwardPin, HIGH);
  }

  // Stop motor 1 and 2 when contact 2 are push
 
  digitalWrite(motor1ForwardPin, LOW);
  digitalWrite(motor1BackwardPin, LOW);
   digitalWrite(motor2Pin, LOW);
 

}


void loop() {
}
Titel: Sv: motor projekt
Indlæg af: Icecap efter Maj 29, 2024, 14:21:40
Selvfølgeligt kan du anvende loop() - men da skal du ha en funktion som tjekker om køre-funktionen skal aktiveres.

Med motorer og drivning til dem SKAL der lidt kondensatorer over madningen for at systemet skal blive stabilt.

Har kontakterne pull-up eller -down så de giver stabile niveauer?