- SF800 Solar Speicher Tutorial         
Ergebnis 1 bis 10 von 14

Thema: AutomatisierterSonnesucher

Hybrid-Darstellung

Vorheriger Beitrag Vorheriger Beitrag   Nächster Beitrag Nächster Beitrag
  1. #1
    Neuer Benutzer Öfters hier
    Registriert seit
    12.03.2014
    Beiträge
    7
    Die Servosteuerung ins in der t_on zeit(impulsrate) versteckt
    Ja der AD Wandler zeigt was auf demLCD An aber der Servo beginnt nicht sich zur Startposition zu bewegen und loszufahren

  2. #2
    Erfahrener Benutzer Roboter-Spezialist Avatar von sast
    Registriert seit
    30.11.2004
    Alter
    54
    Beiträge
    502
    Die Servosteuerung ins in der t_on zeit(impulsrate) versteckt
    Dann kann dir aber auch keiner helfen. Verstecken ist ganz schlecht wenn man Hilfe benötigt.

    Hast du denn eine Servoansteuerung schon einmal am Laufen gehabt? Wenn nicht, dann versuch das mal als erstes. Im RN Wissen gibts zu den Servos zB das hier
    http://www.rn-wissen.de/index.php/Servos

    Da hast du dann auch gleich ein C Beispiel dabei.

    sast

    雅思特史特芬
    开发及研究

  3. #3
    Neuer Benutzer Öfters hier
    Registriert seit
    12.03.2014
    Beiträge
    7
    Also
    #define smin 300 //Impulsdauer min 0,6ms (Endstellung links)
    #define smax 1350 //Impulsdauer max 2,5ms (Endstellung rechts)

    und dann wird t_on = smin
    und solange smax nicht erreicht wird zählt er zu t_on 1 dazu

    Der servo soll also erst zu smin fahren und von dort immer 1 dazu in richtung Endstellung

  4. #4
    Erfahrener Benutzer Roboter Genie Avatar von HeXPloreR
    Registriert seit
    08.07.2008
    Ort
    Soltau - Niedersachsen
    Alter
    46
    Beiträge
    1.369
    Was man hier besonders gerne sieht sind Doppelpost...und noch besser sind Dreifachposts Bitte nächstes Mal nur einmal posten.
    Bin zwar kein Admin, aber ich sag das jetzt mal so.

    Frage bitte einen Admin ob er Deinen Post hier in den C-Bereich verschiebt. Und Deine anderen beiden ggf löscht - bevor jemand darauf schreibt.

    Poste Doch bitte den Code direkt hier rein. Ich z.B lade ungern einfach solche Daten runter.

  5. #5
    Neuer Benutzer Öfters hier
    Registriert seit
    12.03.2014
    Beiträge
    7
    Ok, ja ich wusste nicht ob mein post übernommen wurde
    Lösche die anderen gleich also hier kommt der Code:

    #include <avr/io.h> // Headerdatei des Controllers
    #include <zeit.h> // Headerdatei für Zeitverzögerungen
    #include <adc.h> // Headerdatei des Analog-Digital-Wandlers
    #include <myLcd.h> // Headerdatei des LC-Displays

    unsigned int t_on; // Variablen für die Dauer des t_on - Anteils
    unsigned int t_off = 15; // Variable für die Dauer des t_off - Anteils


    unsigned int aktuell;
    unsigned int alterwert ;
    unsigned int postion_hell;
    unsigned int maximum;


    unsigned int adcwert; // Variable für den gewandelten Analogwert

    #define smin 300 //Impulsdauer min 0,6ms (Endstellung links)
    #define smax 1350 //Impulsdauer max 2,5ms (Endstellung rechts)


    int main(void)
    {
    DDRB |= 0b00000010; // Port B Pin 1 als Ausgang festlegen

    adc_initialisieren (); // AD-Wandler vorbereiten
    lcd_initialisieren ();

    t_on = smin; // t_on wird zu smin



    while(1)
    {


    if (t_on < smax) // wenn Maximalwert noch nicht überschritten
    {
    t_on++; // Timer-Vergleichwert vergrößern

    aktuell = adc_lesen(5); // aktuell ist der aktuelle AdcWert

    lcd_zahl(1,0,aktuell,5);

    alterwert = aktuell;

    PORTB |= (1<<PB1);
    zeit(t_on);

    PORTB &= ~(1<<PB1);
    zeit(t_off);

    if (aktuell > alterwert) //aktueller Wert größer als Alterwert

    {
    maximum = aktuell; // Das Maximum ist dann der Aktuelle Wert
    postion_hell = t_on; // Hellste Postion ist dann t_on
    }


    }

    if (t_on >= smax) // Wenn T_on größer/gleich smax ist starte
    {
    while(1)
    {
    PORTB |= (1<<PB1);
    zeit(postion_hell);
    PORTB &= ~(1<<PB1);
    zeit(t_off);
    }
    }





    }
    }

  6. #6
    Erfahrener Benutzer Begeisterter Techniker
    Registriert seit
    14.11.2013
    Ort
    Home
    Beiträge
    213
    Hallo,
    möchte im Forum gerne helfen. Habe mich aber schon oft ein „Ei“ gelegt, da ich nicht weis, welche Hartware verwendet wird. Hast du ein „Arduino“ und schriebst dein Projekt vielleicht noch mit „Scratch“ kann ich nur empfehlen wende dich an diese Experten.

    Findest diese im Forum.

    Mit freundlichen Grüßen
    fredred

  7. #7
    Neuer Benutzer Öfters hier
    Registriert seit
    12.03.2014
    Beiträge
    7
    Nein ich habe ein Atmega168 und Atmel 6.1

  8. #8
    Erfahrener Benutzer Robotik Visionär
    Registriert seit
    26.11.2005
    Ort
    bei Uelzen (Niedersachsen)
    Beiträge
    7.942
    Wenn es geht solle man das Servosignal per Timer Erzeugen. Für 2 Kanäle kann man bei den meisten µCs einfach Hardware PWM von timer 1 nutzen. So ist da Servosignal vom Rest des Programms unabhängig.

  9. #9
    Neuer Benutzer Öfters hier
    Registriert seit
    12.03.2014
    Beiträge
    7
    Da ich nur Grundlagen beherrsche und ich überhaupt noch nicht mit Timern gearbeitet habe und am Montag Abgabe ist wird das schwierig

Berechtigungen

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

Solar Speicher und Akkus Tests