- LiFePO4 Speicher Test         
Seite 3 von 3 ErsteErste 123
Ergebnis 21 bis 27 von 27

Thema: 2 funktionierende Sketche in einem - Bitte um Hilfestellung für Anfänger

  1. #21
    Benutzer Stammmitglied
    Registriert seit
    16.02.2014
    Beiträge
    80
    Anzeige

    LiFePo4 Akku selber bauen - Video
    So sieht die komplette Funktion bei mir aus:
    Code:
    void Operation2() {						// LED SENSOR
       analogWrite (ledRedPin, (map ( analogRead(sensorPin), 1023, 0, 30, 225 ) ) );   // LED-PWM ist mindestens 30 und maximal 225
       }
    Alle Klammern und Kommas korrekt? Hast Du die Variablennamen auf Deine Umgebung angepasst? ledRedPin und sensorPin sind bei mir global deklariert.

  2. #22
    Erfahrener Benutzer Fleißiges Mitglied
    Registriert seit
    26.04.2011
    Ort
    Heilbronn
    Alter
    36
    Beiträge
    180
    okay wieder mein Fehler, hat eine Klammer nach sensorPin gefehlt

    Habe jetzt noch eine Funktion testweise eingebaut, wo eine LED eine 1 Sekunde an bleibt und nach 200 ms wieder ausgeht.

    Also Operation2 ( LED Sensor) und Operation3 ( Blinklicht ) funktunieren einwandfrei, hab bei OP2 noch den wert 30 und 255 vertauschen müssen,
    sonst war der Effekt genau anders herum.

    Jetzt hab ich nur noch ein Problem in Operation1 ( Netzwerkkamera Ein/Aus ), das der Serielle Monitor zwar "LED An" und "LED Aus" ausgibt,
    aber die LED nicht an und aus geht! Habe aber geschaut das sich diesmal kein Fehler auf dem Steckbrett eingeschlichen hat.

    Hier nochmal mein Momentaner Code, so wie er fast läuft:


    Code:
    /*
    
    Autor: Benjamin Grammel
    Datum: 28.02.2014
    Projekt: Roboter RSL-7
    Verwendungszweck: Operation 1: Netzwerkkamera am Roboter manuell ein und Ausschalten
                      Operation 2: LED´s per Lichtsensor steuern
                      Operation 3: Blinklicht
    */
    
    // ----------------------------------------
    
    
    
    // Konstante für Operation1 = Netzwerkkamera
    const int switchPin = 2;
    const int camPin = 3;
    
    // Konstante für Operation2 = LED SENSOR
    const int sensorPin = A1;
    const int ledFrontPin = 7;
    
    // Konstante für Operation3 = Blinklicht
    const int controlPin = 10;
    
    int state;                                // Variable für Operation1 = Netzwerkkammera Ein / Aus
    int lastState;                            // Variable für Operation1 = Netzwerkkammera Ein / Aus
    int ledState;                             // Variable für Operation1 = Netzwerkkammera Ein / Aus
    
    
    void setup()
    {
      pinMode(camPin, OUTPUT);
      pinMode(switchPin, INPUT);
      pinMode(ledFrontPin, OUTPUT);
      pinMode(controlPin, OUTPUT);
     
      Serial.begin(9600);
    
    
    }
    
    void Operation1()  // Netzwerkkamera Ein / Aus
    {
      state = digitalRead(switchPin);
     
      if (state != lastState) 
      {
        if (state == HIGH) 
        {
          if (ledState == HIGH) 
          {
            ledState = LOW;
            Serial.println("LED AUS");
          }
          else
          {
            ledState = HIGH;
            Serial.println("LED EIN");
          }
        }
        lastState = state;
      }
    
      digitalWrite(camPin, ledState);
      delay(20);
    
    }
    
    
    // ----------------------------------------
    
    void Operation2() // LED SENSOR steuert LED´s
    {
      analogWrite(ledFrontPin, (map(analogRead(sensorPin), 1023, 0, 255, 30))); // LED-PWM ist mindestens 30 und maximal 255
    }
    
    // ----------------------------------------
    
    void Operation3() // Kontroll LED
    {
      digitalWrite(controlPin, HIGH); // LED An
      delay(1000);
      //-----------------------------
      digitalWrite(controlPin, LOW); // LED Aus
      delay(200);
    }
    
    
    void loop()
    {
      Operation1(); // Netzwerkkamera ein und aus schalten
      Operation2(); // Sensor steuert LED´s
      Operation3(); // Kontroll LED
    }

  3. #23
    Benutzer Stammmitglied
    Registriert seit
    16.02.2014
    Beiträge
    80
    okay wieder mein Fehler, hat eine Klammer nach sensorPin gefehlt
    Sag mal - Du tippst das Zeug doch nicht etwa von Hand ab??? Das kann man doch markieren und über Zwischenablage einfügen...

    Jetzt hab ich nur noch ein Problem in Operation1 ( Netzwerkkamera Ein/Aus ), das der Serielle Monitor zwar "LED An" und "LED Aus" ausgibt,
    aber die LED nicht an und aus geht!
    Also bei mir geht das. Ziemlich hakelig aufgrund der langen Delays (man muß halt lange drücken) aber es geht.

  4. #24
    Erfahrener Benutzer Roboter-Spezialist
    Registriert seit
    13.01.2014
    Beiträge
    454
    Blog-Einträge
    3
    Also bei mir geht das. Ziemlich hakelig aufgrund der langen Delays (man muß halt lange drücken) aber es geht.
    Wie wärs damit?:
    Code:
    void Operation3() // Kontroll LED
    {
      static unsigned long startTime = 0 ;
      static unsigned long currentTime = millis();
      
      if (currentTime-startTime < 1000)
        digitalWrite(controlPin, HIGH); // LED An
      else if (currentTime-startTime < 1200)
        digitalWrite(controlPin, LOW); // LED Aus
      else
        startTime = currentTime;
    }

  5. #25
    Erfahrener Benutzer Fleißiges Mitglied
    Registriert seit
    26.04.2011
    Ort
    Heilbronn
    Alter
    36
    Beiträge
    180
    @cdk

    ja ich tippe momentan ab, is mir klar das sich dann Fehler einschleichen können, ABER ich finde ich lerne die Schreibweise
    und ich lern dadurch auch verstehen, wenn ich es abschreibe, so kann ich vor mich hin plappern und es abtippen.

    Hat mir bei konstruieren früher auch geholfen, wenn das jemand gehört hätte, würde er meinen ich führe Selbstgespräche =)
    Finde einfach das hilft mir, es besser zu verstehen, werde nachher schon rein kopieren das is klar ...


    @Sisor

    cool, so hab ich es noch ned betrachtet, muss ich mir erst einmal genau anschauen das ich es verstehe =)
    Wie gesagt Neuling und brauch immer ein paar Minuten bis ich es verstanden hab, besonders mit den "if" Anwendungen

    ach und @cdk, es war in der Operation 1 - Netzwerkkamera Ein/Aus doch ein steck Fehler, die LED hat Falsch herum drin gesteckt,
    hatte die Schaltung 5mal kontrolliert, aber die LED nicht herausgezogen =(

    Ich hab euch ein kleines Video gemacht, das mann das auch mal Life sieht, jetzt funktioniert alles so wie ich es wollte, also vorab einmal.
    Mein LCD Display is auch gekommen, hab ich auch schon gleich Integriert, sogar selbständig, das Programm geschrieben, freut mich das Ichs hinbekommen hab (grins)

    Zum Video: Die Rote LED simuliert die Netzwerkkamera ( Ein/Aus ) und die Gelbe LED simuliert die LED´s die an der Front des RSL7 angebracht werden
    und sollen über den Fotowiderstand gesteuert werden also Hell = Aus / Dunkel = An







    Und hier nochmals der Code, so wie es im Video zu sehen ist:

    Code:
    /*
    
    Autor: Benjamin Grammel
    Datum: 28.02.2014
    Projekt: Roboter RSL-7
    Version:  1.2
    Verwendungszweck: Operation 1: Netzwerkkamera am Roboter manuell ein und Ausschalten
                      Operation 2: LED´s per Lichtsensor steuern
                      Operation 3: Schrift auf LCD Display anzeigen
    */
    
    // ----------------------------------------
    #include <LiquidCrystal.h> / LCD Bibliothek
    
    
    // Konstante für Operation1 = Netzwerkkamera
    const int switchPin = 9;
    const int camPin = 8;
    
    // Konstante für Operation2 = LED SENSOR
    const int sensorPin = A1;
    const int ledFrontPin = 7;
    
    
    int state;                                // Variable für Operation1 = Netzwerkkammera Ein / Aus
    int lastState;                            // Variable für Operation1 = Netzwerkkammera Ein / Aus
    int ledState;                             // Variable für Operation1 = Netzwerkkammera Ein / Aus
    
    LiquidCrystal lcd(12, 11, 5, 4, 3, 2);    // Inizialisirung der Bibliothek mit den Nummern 
                                              // der Pin´s für das LCD Display
    
    void setup()
    {
      pinMode(camPin, OUTPUT);
      pinMode(switchPin, INPUT);
      pinMode(ledFrontPin, OUTPUT);
     
      Serial.begin(9600);
     
      
    // ---------- Variablen für LCD Display ----------
      
      lcd.begin(16, 2);                   // Display Art / 16 Spalten & 2 Reihen
      
      lcd.setCursor(0, 0);                // Springe zu Reihe 1 & Platz 1
      lcd.print("Roboter RSL7");          // Nachricht in Reihe 1
      
      lcd.setCursor(0, 1);                // Springe zu Reihe 2 & Platz 1
      lcd.print("Betriebsbereit!");       // Nachricht in Reihe 2
    }
    
    
    void Operation1()  // Netzwerkkamera Ein / Aus
    {
      state = digitalRead(switchPin);
     
      if (state != lastState) 
      {
        if (state == HIGH) 
        {
          if (ledState == HIGH) 
          {
            ledState = LOW;
            Serial.println("LED AUS");
          }
          else
          {
            ledState = HIGH;
            Serial.println("LED EIN");
          }
        }
        lastState = state;
      }
    
      digitalWrite(camPin, ledState);
      delay(20);
    }
    
    
    // ----------------------------------------
    
    void Operation2() // LED SENSOR steuert LED´s
    {
      analogWrite(ledFrontPin, (map(analogRead(sensorPin), 1023, 0, 255, 30))); // LED-PWM ist mindestens 30 und maximal 255
    }
    
    
    void loop()
    {
      Operation1(); // Netzwerkkamera ein und aus schalten
      Operation2(); // Sensor steuert LED´s
    }

    Mfg Benny

  6. #26
    Benutzer Stammmitglied
    Registriert seit
    16.02.2014
    Beiträge
    80
    ach und @cdk, es war in der Operation 1 - Netzwerkkamera Ein/Aus doch ein steck Fehler, die LED hat Falsch herum drin gesteckt,
    hatte die Schaltung 5mal kontrolliert, aber die LED nicht herausgezogen =(
    Ich würde Dir empfehlen erstmal ein kleines Platinchen zusammenzulöten - 2 Taster, 2 LEDs, 1 Poti oder so in der Art und Jumperkabel zum Stecken dran. Damit kannst Du dann erstmal programmieren üben ohne Dich um Hardware scheren zu müssen.
    So wie jetzt ist das ja ziemlich undankbar und hat viel Verzweiflungspotential wenn Du weder sicher sein kannst daß die Software funktioniert noch daß die Hardware funktioniert...

  7. #27
    Erfahrener Benutzer Fleißiges Mitglied
    Registriert seit
    26.04.2011
    Ort
    Heilbronn
    Alter
    36
    Beiträge
    180
    Ja da hast du recht, dann weis man das wenigstens die Hardware stimmt.

    Hab ja schon angefangen, die Platine zu löten für mein RSL, aber nach 3 ständiger Fehlversuche, bin ich dann drauf gekommen, der Transistor lässt nur 0.6A an der
    Basis durch, ich brauche für meine Netzwerkkamera aber mindestens einer der 1,5A an der Basis durch lässt. Bis ich da drauf gekommen bin, hast gedauert, ein kleiner
    Lötfehler am Taster hatte sich auch noch eingeschlichen, aber gemerkt hatte ich es erst als ich den Transistor angelangt haben :P Dann bin ich die Daten nochmal durch
    und habe gemerkt

    Aber ich denke für 1 1/2 Wochen "Arduino" nicht schlecht =)

    Soweit zufrieden, mit dem Display will ich noch etwas experimentieren, das er das Anzeigt wenn man die Netzwerkkamera ein und aus schaltet,
    und ich hätte gern ein Ladebalken, der nach dem start des Arduino durchläuft und dann erst "Betriebsbereit!" erschein,
    aber es ist ja noch kein Meister vom Himmel gefallen

Seite 3 von 3 ErsteErste 123

Ähnliche Themen

  1. c++ Uhr, brauche hilfestellung für interrupts
    Von backinblack im Forum Software, Algorithmen und KI
    Antworten: 1
    Letzter Beitrag: 01.04.2013, 12:46
  2. Hilfestellung mit C-Programmierung für einen uC
    Von xxrider im Forum C - Programmierung (GCC u.a.)
    Antworten: 23
    Letzter Beitrag: 18.09.2011, 17:38
  3. Antworten: 14
    Letzter Beitrag: 22.06.2009, 18:49
  4. C Anfänger! Bitte code angucken
    Von Freakster235 im Forum C - Programmierung (GCC u.a.)
    Antworten: 7
    Letzter Beitrag: 21.02.2008, 16:10
  5. bitte helft einem Anfänger !!!
    Von jagdfalke im Forum Controller- und Roboterboards von Conrad.de
    Antworten: 9
    Letzter Beitrag: 02.03.2005, 16:25

Berechtigungen

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

fchao-Sinus-Wechselrichter AliExpress