- 3D-Druck Einstieg und Tipps         
Ergebnis 1 bis 10 von 26

Thema: Pulverwaage elektronisch geregelt

Hybrid-Darstellung

Vorheriger Beitrag Vorheriger Beitrag   Nächster Beitrag Nächster Beitrag
  1. #1
    Neuer Benutzer Öfters hier
    Registriert seit
    24.06.2016
    Beiträge
    14
    Super, danke.

    Kleines Problem..

    Arduino: 1.6.8 (Windows 7), Board: "Arduino/Genuino Uno"


    C:\Users\ramirez\Documents\Arduino\StepperLicht4\S tepperLicht4.ino: In function 'void loop()':

    StepperLicht4:32: error: expected primary-expression before '>' token

    if (buttonState <> 0)

    ^

    StepperLicht4:38: error: lvalue required as left operand of assignment

    if (sensorValue1 > 512 && sensorValue2 < 512 && merker = 1)

    ^

    StepperLicht4:45: error: lvalue required as left operand of assignment

    if (sensorValue1 < 512 && sensorValue2 < 512 && merker = 1)

    ^

    Bibliothek Bounce2-master in Version 2.21 im Ordner: C:\Users\ramirez\Documents\Arduino\libraries\Bounc e2-master wird verwendet
    exit status 1
    expected primary-expression before '>' token



    Gruß
    Andy

  2. #2
    Erfahrener Benutzer Robotik Einstein Avatar von i_make_it
    Registriert seit
    29.07.2008
    Ort
    Raum DA
    Alter
    56
    Beiträge
    2.814
    Falsche Sprache.

    "<>" = ungleich = "!="
    "=" = gleich = "==" ,natürlich nur bei den IF Bedingungen

    https://www.arduino.cc/en/Reference/HomePage

    Habs oben geändert.

  3. #3
    Neuer Benutzer Öfters hier
    Registriert seit
    24.06.2016
    Beiträge
    14
    Alles klar, funktioniert.
    Test mit Hardware kann ich morgen erst machen.

    Vielen Dank
    Gruß
    Andy

  4. #4
    Neuer Benutzer Öfters hier
    Registriert seit
    24.06.2016
    Beiträge
    14
    Hallo, alles bestens.
    Lichtschranken, Motor, Drehzahl, alles funktioniert.

    Hab grad versucht das selbe für den größeren Motor mit dem TB6560 Treibermodul anzupassen, aber da klappt das ganze weniger gut.
    Das Treibermodul hat ja nur zwei Eingänge CW+ und CLK+, die beiden anderen gehen auf Masse.

    Kannst Du mir sagen wie ich mein Programm umschreiben soll?
    Momentan läuft es so:
    PHP-Code:
    #include <Bounce2.h>

    int buttonPin 13;
    int sensorPin1 A2
    int sensorPin2 A3
    int sensorValue1 0
    int sensorValue2 0

    int motorPin1 8;        
    int motorPin2 9;       
          
                              

                                      
    int motorSpeed 0
    int buttonState 0;
    int merker 0;     

    void setup() { 

    pinMode(motorPin1OUTPUT); 
    pinMode(motorPin2OUTPUT); 

    digitalWrite(motorPin1LOW);
    digitalWrite(motorPin2LOW);



    pinMode(buttonPinINPUT);


    Serial.begin(9600); 

    void loop(){
    buttonState  digitalRead(buttonPin);
    sensorValue1 analogRead(sensorPin1); 
    sensorValue2 analogRead(sensorPin2); 
    Serial.println(buttonState);
    if (
    buttonState != 1)   
    {
       
    merker 1;
       
    }             


    if (
    sensorValue1 512 && sensorValue2 512 && merker == 1)    

    {
       
    motorSpeed 1;
      
       
    counterclockwise();                    

    }
    if (
    sensorValue1 512 && sensorValue2 512  && merker == 1)   

    {
      
    motorSpeed 2;

      
    counterclockwise();                    

    }
    if (
    sensorValue1 512 && sensorValue2 512)

    {
      
    motorSpeed 0;
      
      
    merker 0;
      
    counterclockwise();                    

      }
    }



    void counterclockwise (){ 
    // 1 

     
    digitalWrite(motorPin1HIGH); 
    digitalWrite(motorPin2LOW); 

    delay(motorSpeed); 


    // 2 

    digitalWrite(motorPin1LOW); 
    digitalWrite(motorPin2HIGH); 

    delay (motorSpeed); 



    Motor läuft sehr langsam bei motorSpeed = 1, etwa 6 sek für eine Umdrehung.
    Bei motorSpeed = 2 dann die Hälfte, klar.
    Aber bei Motor Speed = 0 wieder in etwa so schnell wie auf motorSpeed = 1


    Hast du vielleicht ne Idee was ich anders machen könnte?
    Die Beispielprogramme aus dem Netz hab ich schon durchprobiert, aber die anzupassen ist mir leider zu hoch.

    Vielen Dank
    Andy

  5. #5
    Erfahrener Benutzer Robotik Einstein Avatar von i_make_it
    Registriert seit
    29.07.2008
    Ort
    Raum DA
    Alter
    56
    Beiträge
    2.814
    Probier es mal so:
    Code:
    #include <Bounce2.h>
    
    int buttonPin = 13;
    int sensorPin1 = A2; 
    int sensorPin2 = A3; 
    int sensorValue1 = 0; 
    int sensorValue2 = 0; 
    
    int motorPin1 = 8;        
    int motorPin2 = 9;       
          
    int motorSpeed = 0; 
    int buttonState = 0;
    int merker = 0;     
    
    void setup() { 
      pinMode(motorPin1, OUTPUT); 
      pinMode(motorPin2, OUTPUT); 
      digitalWrite(motorPin1, LOW);
      digitalWrite(motorPin2, LOW);
      pinMode(buttonPin, INPUT);
      Serial.begin(9600); 
    }
     
    void loop(){
      buttonState  = digitalRead(buttonPin);
      sensorValue1 = analogRead(sensorPin1); 
      sensorValue2 = analogRead(sensorPin2); 
      Serial.println(buttonState);
      if (buttonState != 1)   
      {
        merker = 1; 
      }             
    
      if (sensorValue1 > 512 && sensorValue2 < 512 && merker == 1)    
      {
        motorSpeed = 1;
        counterclockwise();                    
      }
    
      if (sensorValue1 < 512 && sensorValue2 < 512  && merker == 1)   
      {
        motorSpeed = 2;
        counterclockwise();                    
      }
    
      if (sensorValue1 < 512 && sensorValue2 > 512)
      {
        motorSpeed = 0; 
        merker = 0;                   
      }
    }
    
    void counterclockwise (){ 
      // 1 
      digitalWrite(motorPin1, HIGH); 
      digitalWrite(motorPin2, LOW); 
      delay(motorSpeed); 
    
      // 2 
      digitalWrite(motorPin1, LOW); 
      digitalWrite(motorPin2, HIGH); 
      delay (motorSpeed); 
    }

  6. #6
    Neuer Benutzer Öfters hier
    Registriert seit
    24.06.2016
    Beiträge
    14
    Gut, test ich morgen früh. Hab Nachtschicht.

    Danke
    Gruß

  7. #7
    Neuer Benutzer Öfters hier
    Registriert seit
    24.06.2016
    Beiträge
    14
    Moin..

    Alles klar, funktioniert.
    Grad hatte ich noch das Problem dass der Motor zwar mit nem Testprogramm sauber gelaufen ist, aber mit den Lichtschranken nur noch sehr langsam.
    Hatte den Verdacht dass das UNO nicht mit Lichtschranken überwachen und Motor regeln hinterher kommt.
    Zuerst wollte ich die Lichtschranken nicht bei jedem Durchlauf abfragen, hab aber keine Ahnung ob und wie das geht..
    Also hab ich den letzten Teil jetzt zehnmal drin, und erst dann werden die Lichtschranken wieder abgefragt. Klappt wunderbar.
    Liegt also anscheinend am UNO bzw. dessen fehlender Geschwindigkeit.

    Hier nochmal der Code, vielleicht hilfts jemandem. Nicht schön, aber funktioniert.

    Danke für die Hilfe.

    PHP-Code:
    #include <Bounce2.h>

      
    int buttonPin 13;
      
    int sensorPin1 A2
      
    int sensorPin2 A3
      
    int sensorValue1 0
      
    int sensorValue2 0

      
    int PinCLK 9;        
      
    int PinCW 8;       
                              
      
    int ledPin1 2;
      
    int ledPin2 4;
      
    int ledPin3 7;
                                      
      
    int motorSpeed 0
      
    int buttonState 0;
      
    int merker 0;     

      
    void setup() { 

      
    pinMode(PinCLKOUTPUT); 
      
    pinMode(PinCWOUTPUT); 

      
    digitalWrite(PinCLKLOW);
      
    digitalWrite(PinCWLOW);

      
    pinMode(buttonPinINPUT);

      
    pinMode(ledPin1OUTPUT); 
      
    pinMode(ledPin2OUTPUT); 
      
    pinMode(ledPin3OUTPUT); 

      
    Serial.begin(9600); 

      
    void loop(){
      
      
    buttonState  digitalRead(buttonPin);
      
    sensorValue1 analogRead(sensorPin1); 
      
    sensorValue2 analogRead(sensorPin2); 
      
    Serial.println(buttonState);

      if (
    buttonState != 1)   
    {
      
    merker 1;
    }             
      if (
    sensorValue1 512 && sensorValue2 512 && merker == 1)    
    {
      
    motorSpeed 420;
      
    digitalWrite (ledPin1HIGH);
      
    digitalWrite (ledPin2LOW);
      
    digitalWrite (ledPin3LOW);
      
    counterclockwise();                    

    }
      if (
    sensorValue1 512 && sensorValue2 512  && merker == 1)   
    {
      
    motorSpeed 12000;
      
    digitalWrite (ledPin1HIGH);
      
    digitalWrite (ledPin2HIGH);
      
    digitalWrite (ledPin3LOW);
      
    counterclockwise();                    
    }
      if (
    sensorValue1 512 && sensorValue2 512)
    {
      
    motorSpeed 0;
      
    digitalWrite (ledPin1HIGH);
      
    digitalWrite (ledPin2HIGH);
      
    digitalWrite (ledPin3HIGH);
      
    merker 0;
    }
    }

      
    void counterclockwise (){ 
     
      
    digitalWrite(PinCLKHIGH); 
      
    delayMicroseconds(motorSpeed); 
      
    digitalWrite(PinCLKLOW); 
      
    delayMicroseconds(motorSpeed); 

      
    digitalWrite(PinCLKHIGH); 
      
    delayMicroseconds(motorSpeed); 
      
    digitalWrite(PinCLKLOW); 
      
    delayMicroseconds(motorSpeed); 

      
    digitalWrite(PinCLKHIGH); 
      
    delayMicroseconds(motorSpeed); 
      
    digitalWrite(PinCLKLOW); 
      
    delayMicroseconds(motorSpeed); 

      
    digitalWrite(PinCLKHIGH); 
      
    delayMicroseconds(motorSpeed); 
      
    digitalWrite(PinCLKLOW); 
      
    delayMicroseconds(motorSpeed); 

      
    digitalWrite(PinCLKHIGH); 
      
    delayMicroseconds(motorSpeed); 
      
    digitalWrite(PinCLKLOW); 
      
    delayMicroseconds(motorSpeed); 

      
    digitalWrite(PinCLKHIGH); 
      
    delayMicroseconds(motorSpeed); 
      
    digitalWrite(PinCLKLOW); 
      
    delayMicroseconds(motorSpeed); 

      
    digitalWrite(PinCLKHIGH); 
      
    delayMicroseconds(motorSpeed); 
      
    digitalWrite(PinCLKLOW); 
      
    delayMicroseconds(motorSpeed); 

      
    digitalWrite(PinCLKHIGH); 
      
    delayMicroseconds(motorSpeed); 
      
    digitalWrite(PinCLKLOW); 
      
    delayMicroseconds(motorSpeed); 

      
    digitalWrite(PinCLKHIGH); 
      
    delayMicroseconds(motorSpeed); 
      
    digitalWrite(PinCLKLOW); 
      
    delayMicroseconds(motorSpeed); 

      
    digitalWrite(PinCLKHIGH); 
      
    delayMicroseconds(motorSpeed); 
      
    digitalWrite(PinCLKLOW); 
      
    delayMicroseconds(motorSpeed); 


    Gruß
    Andy

Ähnliche Themen

  1. Spannungs geregelt ein/aus schalten
    Von goara im Forum Elektronik
    Antworten: 3
    Letzter Beitrag: 16.07.2010, 18:24
  2. asuro lernt geregelt fahren
    Von radbruch im Forum Asuro
    Antworten: 6
    Letzter Beitrag: 19.01.2007, 11:20
  3. ir diode geregelt treiben
    Von leif im Forum Elektronik
    Antworten: 5
    Letzter Beitrag: 27.11.2004, 23:41
  4. Antworten: 4
    Letzter Beitrag: 29.08.2004, 12:25
  5. [ERLEDIGT] Power-Netzteil, geregelt
    Von im Forum Elektronik
    Antworten: 3
    Letzter Beitrag: 16.04.2004, 12:34

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •  

12V Akku bauen