- LiFePO4 Speicher Test         
Seite 2 von 2 ErsteErste 12
Ergebnis 11 bis 20 von 20

Thema: servomotorbewegung zählen

  1. #11
    Erfahrener Benutzer Robotik Visionär Avatar von 021aet04
    Registriert seit
    17.01.2005
    Ort
    Niklasdorf
    Alter
    36
    Beiträge
    5.065
    Anzeige

    Powerstation Test
    Es fehlt aber die main Schleife oder ist das nicht das ganze Programm?

    Du musst unter die include Anweisung die Zählvariable definieren.

    Code:
    unsigned int i=0;
    Den jeweiligen Pin musst du als Ausgang definieren. Bei mir ist das z.B. PA1

    Code:
    DDRA |= (1<<PA1);
    In die if(helligkeit > 150) Schleife schreibst du ganz unten (nach dem delay)

    Code:
    i++;
     if (i>=360) PORTA |= (1<<PA1);
    else PORTA &= ~(1<<PA1);
    MfG Hannes

  2. #12
    Neuer Benutzer Öfters hier
    Registriert seit
    07.06.2012
    Beiträge
    12
    also wenn ich des jetzt versuche dann kommt error compiling =(
    hast du noch ne andere idee?!
    sind grad bisschen am verzweifeln =(

  3. #13
    Erfahrener Benutzer Robotik Visionär Avatar von 021aet04
    Registriert seit
    17.01.2005
    Ort
    Niklasdorf
    Alter
    36
    Beiträge
    5.065
    Poste einmal dein Programm. Welcher Fehler kommt genau?

    Ich habe eine C-Datei hochgeladen damit du weißt wie man es aufbauen sollte.

    MfG Hannes
    Angehängte Dateien Angehängte Dateien

  4. #14
    Neuer Benutzer Öfters hier
    Registriert seit
    07.06.2012
    Beiträge
    12
    DDRA is kein gültiger befehl bei meinem programm =(

  5. #15
    Erfahrener Benutzer Robotik Visionär Avatar von 021aet04
    Registriert seit
    17.01.2005
    Ort
    Niklasdorf
    Alter
    36
    Beiträge
    5.065
    DDRA ist das Register indem man festlegt ob ein Pin Eingang oder Ausgang ist. Wie das dann bei dir heißt weiß ich nicht. Ich programmiere normale AVRs mit AVR Studio.

    MfG Hannes

  6. #16
    Neuer Benutzer Öfters hier
    Registriert seit
    07.06.2012
    Beiträge
    12
    ok gut ja des hilft mir weiter =) wusste nur nicht was das ist =) ich probiers mal und poste dann mein programm =)

  7. #17
    Neuer Benutzer Öfters hier
    Registriert seit
    07.06.2012
    Beiträge
    12
    int helligkeit = 0; // variable helligkeit auf 0 setzen
    int i = 0 ; //zählvariable auf 0 setzen
    #include <Servo.h> //?
    //unsigned int i=0;
    Servo myservo1; // variablen der motoren
    Servo myservo2;

    int pos = 0; //variable zur bestimmung der position der Motoren
    int erster_start = 1;



    void setup()
    {
    pinMode(8, OUTPUT); //LED gelb anmelden
    pinMode(7, OUTPUT); //LED rot anmelden
    pinMode(9, OUTPUT); //Motor zählen
    Serial.begin(9600);

    myservo1.attach(9); //Motoren angemeldet
    myservo2.attach(10);
    }

    void loop()
    {
    digitalWrite(8, HIGH); // LED ein
    if (i<360)
    {
    if(erster_start == 1)
    {
    myservo1.write(90); //motoren drehen sich auf ihre positionen -> voller Anschlag
    myservo2.write(0);
    delay(500); //warten
    erster_start = 0;
    }
    helligkeit = analogRead(0); //helligkeitswert wird eingelesen von lichtsenor und angepasst

    if(helligkeit > 150) //helligkeit muss höher als 500 sein dass Motoren sich bewegen
    {
    myservo1.write(55); //Herunterdrücken
    myservo2.write(35); //Herunterdrücken
    delay(1000); // Wartezeit, Servo muss in dieser Zeit ganz nach unten gekommen sein
    myservo1.write(90);
    myservo2.write(00);
    delay(1000);
    i++;

    }

    else
    {
    digitalWrite(7, HIGH); //LED rot einschalten
    }

    }



    }

    also des programm wenn ich es so kontorllieren lasse von meinem programm is von der theorie alles richitg meinst so funktioniert das?

  8. #18
    Neuer Benutzer Öfters hier
    Registriert seit
    07.06.2012
    Beiträge
    12
    noch ne frage des PORTA |= (1<<PA1); was bedeutet das? dass ich des in mein programm umschreibn kann weil sonst hat meine änderung am programm glaub gar keinen sinn! =)

  9. #19
    Neuer Benutzer Öfters hier
    Registriert seit
    07.06.2012
    Beiträge
    12
    also ERFOLG! nach der gewünschten anzahl hört der auf zu pumpen muss nur doch die LED mit in die schleife brignen
    DANKE !!
    =)

  10. #20
    Erfahrener Benutzer Robotik Visionär Avatar von 021aet04
    Registriert seit
    17.01.2005
    Ort
    Niklasdorf
    Alter
    36
    Beiträge
    5.065
    Glückwunsch wenn es funktioniert. Bin erst jetzt wieder heim gekommen.

    Erklärung zu "PORTA |= (1<<PA1);"
    PORTA => ist der Port der angesprochen werden soll, beim Atmega 168/328 gibt es diesen Port nicht, PORTD (den gibt es beim Atmega168/32 wäre PD0 bis PD7
    |= => verwendet man zum Setzen von Pins,... ist eine Oder Verknüpfung
    (1<<PA1) => 1 nach links schieben um PA1 (ist 1), PA1 schreibt man damit man eine bessere Lesbarkeit erreicht

    MfG Hannes

Seite 2 von 2 ErsteErste 12

Ähnliche Themen

  1. Hex Zählen
    Von Thom24 im Forum PIC Controller
    Antworten: 4
    Letzter Beitrag: 03.10.2009, 20:30
  2. Takte zählen
    Von yaro im Forum Assembler-Programmierung
    Antworten: 2
    Letzter Beitrag: 15.04.2009, 19:03
  3. Impulse zählen
    Von timmy83 im Forum Basic-Programmierung (Bascom-Compiler)
    Antworten: 2
    Letzter Beitrag: 22.10.2006, 12:54
  4. Hühner zählen?
    Von SeveQ im Forum Allgemeines zum Thema Roboter / Modellbau
    Antworten: 9
    Letzter Beitrag: 08.03.2006, 09:21
  5. Impulse Zählen
    Von Spion im Forum PC-, Pocket PC, Tablet PC, Smartphone oder Notebook
    Antworten: 3
    Letzter Beitrag: 17.09.2005, 23:43

Stichworte

Berechtigungen

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

LiFePO4 Speicher Test