- Akku Tests und Balkonkraftwerk Speicher         
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
    Das Shield ist direkt auf den UNO draufgesteckt.
    Aber ok, ich besorg mir nen anderen treiber, dann sind die Pins frei, und das Wärmeproblem müsste auch gelöst sein.

    Danke
    Andy
    Geändert von Shag (29.06.2016 um 17:31 Uhr)

  2. #2
    Erfahrener Benutzer Robotik Einstein Avatar von i_make_it
    Registriert seit
    29.07.2008
    Ort
    Raum DA
    Alter
    57
    Beiträge
    2.814
    Zitat Zitat von Shag Beitrag anzeigen
    Das Shield ist direkt auf den UNO draufgesteckt.
    Aber ok, ich besorg mir nen anderen treiber, dann sind die Pins frei,
    Mann könnte auch:
    int sensorPin = A0;
    ändern in:
    int sensorPin = A2;
    oder bis
    int sensorPin = A6;
    dürfte kostengünstiger sein als neue Hardware zu kaufen.

    Zitat Zitat von Shag Beitrag anzeigen
    ich besorg mir nen anderen treiber
    und das Wärmeproblem müsste auch gelöst sein.
    Das Motorshield hat als Einflußmöglichkeit:
    PWM
    Brake
    und
    Current Sensing
    als feedback, damit ist es möglich einen Regelkreis zu programmieren, bei dem der Strom bei kleinen Drehzahlen reduziert wird.
    OK, nicht einfach aber es geht.
    Was soll ein anderer Treiber an dem Problem ändern.
    Du nimmst einen größeren Treiber?
    Gut daß ändert nichts am Wiederstand der Motorwicklung.
    Dann wird halt nicht der Treiber heiß, sondern der Motor brennt durch.

    Weißt Du denn was der Treiber können muß, damit das Problem der Erwärmung bei kleinen Drehzahlen nicht auftritt?

  3. #3
    Erfahrener Benutzer Robotik Einstein
    Registriert seit
    27.08.2013
    Ort
    Region Basel
    Alter
    67
    Beiträge
    2.435
    Hallo,
    Zitat Zitat von i_make_it Beitrag anzeigen
    Was soll ein anderer Treiber an dem Problem ändern.
    Du nimmst einen größeren Treiber?
    Gut daß ändert nichts am Wiederstand der Motorwicklung.
    Dann wird halt nicht der Treiber heiß, sondern der Motor brennt durch.

    Weißt Du denn was der Treiber können muß, damit das Problem der Erwärmung bei kleinen Drehzahlen nicht auftritt?
    Treiber = Bibliothek
    Vielleicht gibt es eine, welche den Regelkreis schon mitliefert.

    Wir wissen ja nicht, welche Software er verwendet und was dieser Treiber so kann?

    MfG Peter(TOO)
    Manchmal frage ich mich, wieso meine Generation Geräte ohne Simulation entwickeln konnte?

  4. #4
    Erfahrener Benutzer Robotik Einstein Avatar von i_make_it
    Registriert seit
    29.07.2008
    Ort
    Raum DA
    Alter
    57
    Beiträge
    2.814
    Zitat Zitat von Shag Beitrag anzeigen
    Das Shield ist direkt auf den UNO draufgesteckt.
    Aber ok, ich besorg mir nen anderen treiber, dann sind die Pins frei, und das Wärmeproblem müsste auch gelöst sein.
    Von der Aussage her bin ich von Treiber = Hardware ausgegangen.
    Wenn man nach einer anderen Bibliothek sucht, kann man den Treiber auch beibehalten wenn die Lib "Step" und "Dir" und ggf. noch "i-sense" und "brake" unterstützt.
    Das wäre nämlich ein StromChopper per Software.

    Wenn man einen Motortreiber nimmt der Stromchopper in Hardware kann und "Step" und "Dir", dann braucht man an der Software außer eventuell der Pinzuweisung nichts ändern.
    Allerdings muß man sich da dann schon mit den Treibern die es am Markt für Nema 17 Stepper gibt schon etwas auskennen.

    Aus dem bisherigen Threadverlauf schließe ich, das es hier noch etwas fehlt.

    Da ich keine fertigen Shields nehme (Ausnahme ein Breakout Board und das RAMPS1.4) würde ich empfehlen in Richtung
    A4988
    DRV8825
    DRV8835
    und
    TMC2100
    zu schauen.

    Der letzte hat soweit ich weis chopper mode.
    Aber da muß man halt neue Hardware für etwas kaufen das man auch mit Software ohne Zusatzkosten korrigieren kann.
    Bei einer Neuplanung macht es natürlich Sinn sich von vorneherein schon die passende Hardware zuzulegen.

  5. #5
    Neuer Benutzer Öfters hier
    Registriert seit
    24.06.2016
    Beiträge
    14
    Hallo,

    danke für die Antworten (auch wenn mir manches davon zu hoch ist)

    Werd mir den

    Stepper Motor 28BYJ-48 + Treiberplatine ULN2003

    besorgen. Lichtschranken arbeiten, zumindest kann ich schon mal LEDs damit schalten.

    Das ist der Code für zwei Lichtschranken die zwei LEDs schalten.

    int sensorPin1 = A2;
    int sensorPin2 = A3;
    int sensorValue1 = 0;
    int sensorValue2 = 0;
    int ledPin1 = 12;
    int ledPin2 = 13;
    void setup()
    {
    pinMode(ledPin1, OUTPUT);
    pinMode(ledPin2, OUTPUT);
    Serial.begin(9600);
    }

    void loop()
    {
    sensorValue1 = analogRead(sensorPin1);
    sensorValue2 = analogRead(sensorPin2);

    Serial.println(sensorValue1);

    if (sensorValue1 < 512) {
    digitalWrite(ledPin1, HIGH);
    }
    else
    {
    digitalWrite(ledPin1, LOW);
    }

    if (sensorValue2 > 512) {
    digitalWrite(ledPin2, HIGH);
    }
    else
    {
    digitalWrite(ledPin2, LOW);
    }



    delay(100);
    }



    Jetzt sollen aber nicht zwei LEDs geschaltet sondern ein Schrittmotor mit
    zwei verschiedenen Drehzahlen und am Ende gestoppt werden.

    Soll heissen

    SensorValue1 >512 und SensorValue2 < 512 - Motordrehzahl X
    SensorValue1 <512 und SensorValue2 < 512 - Motordrehzahl Y
    SensorValue1 <512 und SensorValue2 > 512 - Motor STOP

    Könnt ihr mir nen Tip geben wie ich das programmieren kann?

    Vielen Dank
    Andy

  6. #6
    Neuer Benutzer Öfters hier
    Registriert seit
    24.06.2016
    Beiträge
    14
    Hallo nochmal,

    die Waage arbeitet soweit, allerdings fehlt noch die Bedienfreundlichkeit.
    Vielleicht könnt ihr mir da weiterhelfen.

    Der Code sieht bisher so aus:
    PHP-Code:

    int sensorPin1 
    A2
    int sensorPin2 A3
    int sensorValue1 0
    int sensorValue2 0
    int motorPin1 8;        // Blue   - 28BYJ48 pin 1 
    int motorPin2 9;        // Pink   - 28BYJ48 pin 2 
    int motorPin3 10;      // Yellow - 28BYJ48 pin 3 
    int motorPin4 11;      // Orange - 28BYJ48 pin 4 
                                        // Red    - 28BYJ48 pin 5 (VCC) 
    int motorSpeed 0

    void setup() { 

    pinMode(motorPin1OUTPUT); 
    pinMode(motorPin2OUTPUT); 
    pinMode(motorPin3OUTPUT); 
    pinMode(motorPin4OUTPUT); 

    Serial.begin(9600); 

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


    if (
    sensorValue1 512 && sensorValue2 512)

    {
      
    motorSpeed 1;                      
       
    counterclockwise();                    

    }
    if (
    sensorValue1 512 && sensorValue2 512)

    {
      
    motorSpeed 2;                      
       
    counterclockwise();                    

    }
    if (
    sensorValue1 512 && sensorValue2 512)

    {
      
    motorSpeed 0;                      
       
    counterclockwise();                    

      }
    }

    void counterclockwise (){ 
    // 1 
    digitalWrite(motorPin1HIGH); 
    digitalWrite(motorPin2LOW); 
    digitalWrite(motorPin3LOW); 
    digitalWrite(motorPin4LOW); 
    delay(motorSpeed); 
    // 2 
    digitalWrite(motorPin1HIGH); 
    digitalWrite(motorPin2HIGH); 
    digitalWrite(motorPin3LOW); 
    digitalWrite(motorPin4LOW); 
    delay (motorSpeed); 
    // 3 
    digitalWrite(motorPin1LOW); 
    digitalWrite(motorPin2HIGH); 
    digitalWrite(motorPin3LOW); 
    digitalWrite(motorPin4LOW); 
    delay(motorSpeed); 
    // 4 
    digitalWrite(motorPin1LOW); 
    digitalWrite(motorPin2HIGH); 
    digitalWrite(motorPin3HIGH); 
    digitalWrite(motorPin4LOW); 
    delay(motorSpeed); 
    // 5 
    digitalWrite(motorPin1LOW); 
    digitalWrite(motorPin2LOW); 
    digitalWrite(motorPin3HIGH); 
    digitalWrite(motorPin4LOW); 
    delay(motorSpeed); 
    // 6 
    digitalWrite(motorPin1LOW); 
    digitalWrite(motorPin2LOW); 
    digitalWrite(motorPin3HIGH); 
    digitalWrite(motorPin4HIGH); 
    delay (motorSpeed); 
    // 7 
    digitalWrite(motorPin1LOW); 
    digitalWrite(motorPin2LOW); 
    digitalWrite(motorPin3LOW); 
    digitalWrite(motorPin4HIGH); 
    delay(motorSpeed); 
    // 8 
    digitalWrite(motorPin1HIGH); 
    digitalWrite(motorPin2LOW); 
    digitalWrite(motorPin3LOW); 
    digitalWrite(motorPin4HIGH); 
    delay(motorSpeed); 



    Der Motor dreht zuerst schnell, dann langsamer und schaltet bei Erreichen der Endstellung ab, aber natürlich beim runternehmen der Waagschale auch gleich wieder ein.
    Ich hätte gerne dass der ganze Vorgang hier unterbrochen wird und erst nach drücken eines Tasters wieder startet. Ebenso soll nach dem Einschalten erst auf Tastendruck gestartet werden.

    Wie krieg ich das denn rein?


    Danke
    Andy

  7. #7
    Erfahrener Benutzer Robotik Einstein Avatar von i_make_it
    Registriert seit
    29.07.2008
    Ort
    Raum DA
    Alter
    57
    Beiträge
    2.814
    Habe mir den Programmcode jetzt nicht angesehen, aber lösche wenn die Bedingung zum Abschalten des Motors erreicht ist einen Merker.
    Den fragst Du bei jedem Programmzweig für Motor an ab.
    Nur wenn er gesetzt ist, darf der Teil ausgeführt werden.
    Im Definitionsteil wird er als nicht gesetzt vorbelegt.
    Bei der Tasterabfrage wird er gesetzt.
    Damit fährt beim Programmstart nichts los, weil der Merker als "0" vorgegeben ist.
    Beim Tastendruck wird er auf "1" gesetzt und beim Erreichen der Abschaltbedingung des Motors wieder auf "0" gesetzt.
    Ist halt eine "Hilfsvariable" die sich den Systemzustand merkt.

Ä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