- Akku Tests und Balkonkraftwerk Speicher         
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
    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

  2. #2
    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.

  3. #3
    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);
    }
    }





    }
    }

  4. #4
    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

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

  6. #6
    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.

  7. #7
    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

  8. #8
    Erfahrener Benutzer Roboter-Spezialist Avatar von sast
    Registriert seit
    30.11.2004
    Alter
    54
    Beiträge
    502
    Dafür, dass du Montag Abgabe hast, hast du noch nicht einmal meinen Tipp von oben im Code berücksichtigt.
    Und der Link zum RN Wissen liefert dir doch schon ein fertiges Beispiel für die Verwendung des Timers.

    sast

    雅思特史特芬
    开发及研究

  9. #9
    Erfahrener Benutzer Roboter Genie Avatar von HeXPloreR
    Registriert seit
    08.07.2008
    Ort
    Soltau - Niedersachsen
    Alter
    46
    Beiträge
    1.369
    Interessant das Du den Weg hierher doch schon so früh gefunden hast. Das erklärt auch die Doppelposts.

    Heute ist ja immerhin erst Mittwoch... dann mal los

  10. #10
    Neuer Benutzer Öfters hier
    Registriert seit
    12.03.2014
    Beiträge
    7
    Ja ich habe das Programmieren echt unterschätzt

Berechtigungen

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

Solar Speicher und Akkus Tests