- SF800 Solar Speicher Tutorial         
Ergebnis 1 bis 10 von 20

Thema: Probleme mit einfacher Tasterschaltung

Baum-Darstellung

Vorheriger Beitrag Vorheriger Beitrag   Nächster Beitrag Nächster Beitrag
  1. #7
    Erfahrener Benutzer Fleißiges Mitglied
    Registriert seit
    27.02.2012
    Ort
    50KM über Hamburg
    Beiträge
    128
    Danke für die nette Info!

    Mit dem switch!
    Woher weiß der code dieses?
    case '3':
    //Wenn 3, dann ist Taster1 und Taster2 geschlossen und alle anderen offen
    Wie ändert man das?
    Wie mache ich weiter?
    Beziehe ich mich dann auf z.B.
    case`3`:

    Hier mal der Stromlaufplan in reduzierter Zeichnung:

    Klicke auf die Grafik für eine größere Ansicht

Name:	Weihnachtsquatsch.jpg
Hits:	2
Größe:	39,3 KB
ID:	34571

    So hatte ich es naiv zuerst versucht. Irgendwann gemerkt, das 12 kein PWM kann. Die IR Sache baue ich aus.
    Eigentlich war das gar nicht so schlecht. Nur das der Promini nicht auf die `Drückzeit` der Tasten reagiert hat.

    Code:
    #include <Servo.h>
    Servo myservo;  // create servo object to control a servo
    
    const int L = 2; // Links Fern
    const int R = 3; // Rechts Fern
    const int Vor = 4; // Vor Fern
    const int Rueck = 5; // Rückwärts Fern
    const int IRL = 6; //Hinderniss Rechts
    const int IRR = 7; // Hinderniss Links
    const int FERNON = 13; //Fernsteuerung Spannung
    int PWM = 10; // PWM Motor
    const int Motor_1 = 11; //Motor vor rück
    const int Motor_2 = 12; //Motor vor rück
    int val = 0;
    
    void setup() {
      myservo.attach(9);  // Servo auf DigitalPin 9
      pinMode(2, INPUT);
      pinMode(3, INPUT);
      pinMode(4, INPUT);
      pinMode(5, INPUT);
      pinMode(6, INPUT);
      pinMode(7, INPUT);
      pinMode(10, OUTPUT); //PWM
      pinMode(11, OUTPUT);
      pinMode(12, OUTPUT);
      pinMode(13, OUTPUT);
    }
    void loop() {
      int val = 0;
    
      val = digitalRead(IRL); //Ir Links lesen
      if (digitalRead(IRL) == HIGH)
      {
        digitalWrite(FERNON, LOW);
        analogWrite(PWM, 170);
        myservo.write(60);
        digitalWrite(Motor_1, LOW);
        digitalWrite(Motor_2, HIGH);
        delay(2000);
      }
      else
      {
        digitalWrite(FERNON, HIGH);
        digitalWrite(PWM, LOW);
        myservo.write(90);
        digitalWrite(Motor_1, LOW);
        digitalWrite(Motor_2, LOW);
      }
      {
        val = digitalRead(IRR); //Ir Rechts lesen
        if (digitalRead(IRR) == HIGH)
        {
          digitalWrite(FERNON, LOW);
          analogWrite(PWM, 170);
          myservo.write(120);
          digitalWrite(Motor_1, LOW);
          digitalWrite(Motor_2, HIGH);
          delay(2000);
        }
        else
        {
          digitalWrite(FERNON, HIGH);
          digitalWrite(PWM, LOW);
          myservo.write(90);
          digitalWrite(Motor_1, LOW);
          digitalWrite(Motor_2, LOW);
          delay(50);//Pause, damit das Servo drehen kann
        }
        val = digitalRead(2); //Links Fernsteuerung
        if (digitalRead(2) == HIGH)
        {
          myservo.write(60);
          delay(50);//Pause, damit das Servo drehen kann
        }
        else
        {
          myservo.write(90);
          delay(50);//Pause, damit das Servo drehen kann
        }
        {
          val = digitalRead(3); //Rechts Fernsteuerung
          if (digitalRead(3) == HIGH)
          {
            myservo.write(120);
            delay(50);//Pause, damit das Servo drehen kann
          }
          else
          { 
            myservo.write(90);
          }
            delay(50);//Pause, damit das Servo drehen kann
          }
          {
            val = digitalRead(4);//Fernsteuerung vor
            if (digitalRead(4)==HIGH)
            {
              analogWrite(PWM, 170);
          digitalWrite(Motor_1, HIGH);
          digitalWrite(Motor_2, LOW);
            }
            else
            {
          digitalWrite(Motor_1, LOW);
          digitalWrite(Motor_2, LOW);
            }
               {
            val = digitalRead(5);//Fernsteuerung vor
            if (digitalRead(5)==HIGH)
            {
              analogWrite(PWM, 170);
          digitalWrite(Motor_1, LOW);
          digitalWrite(Motor_2, HIGH);
            }
            else
            {
          digitalWrite(Motor_1, LOW);
          digitalWrite(Motor_2, LOW);
            }
            
            }
          }
        }}
    Geändert von radbruch (18.12.2019 um 21:57 Uhr)

Ähnliche Themen

  1. Fehleranalyse PWM-Tasterschaltung
    Von hansesel im Forum Elektronik
    Antworten: 6
    Letzter Beitrag: 09.01.2014, 13:51
  2. Probleme mit Tasterschaltung
    Von Tuxist im Forum C - Programmierung (GCC u.a.)
    Antworten: 17
    Letzter Beitrag: 13.05.2012, 06:48
  3. Probleme mit einfacher Linenverfolgung!
    Von RuKi000 im Forum Asuro
    Antworten: 9
    Letzter Beitrag: 17.04.2009, 20:47
  4. einfacher Getränkemixer
    Von Feli im Forum Vorstellung+Bilder+Ideen zu geplanten eigenen Projekten/Bots
    Antworten: 9
    Letzter Beitrag: 23.03.2008, 20:54
  5. Einfacher Pegelwandler
    Von Coalminer im Forum Elektronik
    Antworten: 1
    Letzter Beitrag: 22.11.2004, 06:48

Berechtigungen

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

12V Akku bauen