- SF800 Solar Speicher Tutorial         
Ergebnis 1 bis 9 von 9

Thema: LEDs mit Poti zuschalten über µC

Baum-Darstellung

Vorheriger Beitrag Vorheriger Beitrag   Nächster Beitrag Nächster Beitrag
  1. #9
    Hallo,

    Na diese berichtigung nehme ich gerne an und baue sie noch schnell in mein programm ein:

    #include "avr/io.h"
    #include "util/delay.h"
    #include "stdlib.h"
    #include "avr/interrupt.h"
    #include "stdio.h"

    int main (void) {

    DDRD = 0xff; //DDRD alle Pins Ausgang
    ADMUX = 0x40; // Avcc=Referenz--> AVCC geschalten wie
    // im datenblatt seite 196, abbildung 96, Rechtsbündig, PC0 gewählt
    ADCSRA = 0x83; // ADC eingeschaltet, Taktung/8

    while(1)
    {
    ADCSRA |= (1<<ADSC); // start conversion
    while(ADCSRA & (1<<ADSC)); //Warte bis Wandlung wirklich fertig ist

    if(ADCW<=200)
    {
    PORTD |= (1<<PD5);
    PORTD &= ~(1<<PD6);
    }
    else
    {
    PORTD |= (1<<PD6);
    PORTD &= ~(1<<PD5);
    }
    }
    return 0;
    }


    Und wie versprochen noch das programm, das den wert öfters misst und dann mit dem durchschnittswert arbeitet. in meinem Fall wird 30x gemessen und dann der errechnete endwert ausgegeben:
    #include "avr/io.h"
    #include "util/delay.h"
    #include "stdlib.h"
    #include "avr/interrupt.h"
    #include "stdio.h"

    int main (void) {

    uint8_t durchlaufzaehler=0; //zählt die durchgänge
    uint16_t messwerte=0; //messwerte werden hier abgespeichert
    uint16_t endwert=0; //errechneter endwert

    DDRD = 0xff; //DDRD alle Pins Ausgang


    while(1)
    {
    for(durchlaufzaehler=0;durchlaufzaehler<30;durchla ufzaehler++) //diese schleife wird 30x durchlaufen
    {
    ADMUX = 0x40; // Avcc=Referenz--> AVCC geschalten wie
    // im datenblatt seite 196, abbildung 96, Rechtsbündig, PC0 gewählt
    ADCSRA = 0x83; // ADC eingeschaltet, Taktung/8
    ADCSRA |= (1<<ADSC); // start conversion
    while(ADCSRA & (1<<ADSC)); //Warte bis Wandlung wirklich fertig ist
    messwerte+=ADCW; // aufsummierung der messwerte
    }

    endwert=messwerte/30; //durchschnitt errechnen

    if(endwert<=200)
    {
    PORTD |= (1<<PD5);
    PORTD &= ~(1<<PD6);
    }
    else
    {
    PORTD |= (1<<PD6);
    PORTD &= ~(1<<PD5);
    }
    }
    return 0;
    }
    so, ich denke damit kann so mancher anfänger was anfangen
    Geändert von frankensteins-freund (23.12.2012 um 11:53 Uhr)
    Meine eigene cnc-Fräse:
    mihuno.oyla3.de

Ähnliche Themen

  1. Antworten: 8
    Letzter Beitrag: 19.11.2006, 19:52
  2. Antworten: 7
    Letzter Beitrag: 12.07.2006, 00:52
  3. Motor über Poti steuern
    Von FoCus im Forum Elektronik
    Antworten: 22
    Letzter Beitrag: 11.07.2006, 12:12
  4. getriebemotor über poti ansteuern
    Von RedEagle667 im Forum Elektronik
    Antworten: 9
    Letzter Beitrag: 22.08.2005, 06:49
  5. Poti über uC Steuern
    Von Superhirn im Forum Sensoren / Sensorik
    Antworten: 8
    Letzter Beitrag: 28.04.2005, 16:22

Berechtigungen

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

12V Akku bauen