- 3D-Druck Einstieg und Tipps         
Ergebnis 1 bis 2 von 2

Thema: Attiny 25 Problem

Hybrid-Darstellung

Vorheriger Beitrag Vorheriger Beitrag   Nächster Beitrag Nächster Beitrag
  1. #1
    Unregistriert
    Gast

    Attiny 25 Problem

    Guten Tag habe ein großes Problem wollte mich mit dem ADC des Attiny 25 ausernandersetzen und komme da auf keinen grünen Zweig.
    Hätte jemand ein Beispielprogramm welches die Spannung einer 9V Blockbatterie überprüft und mit 3 Leds anzeigt (High,Middle,Low-Zustand).

    Bedanke mich im vorhinein für eure Hilfe

  2. #2
    Erfahrener Benutzer Roboter Experte
    Registriert seit
    02.08.2006
    Ort
    Würzburg, Germany
    Beiträge
    716
    Hallo,

    ich kann dir mit einem Code-Ausschnitt aus einem Tiny25-Programm von mir weiterhelfen. Dort frage ich den ADC regelmäßig via Interrupt ab. Alles weitere wirst du schon schaffen.

    Zunächst brauchst du aber in Hardware erst mal einen Spannungsteiler, der dir die 9V am ADC-Eingang runterrteilt auf < Aref. Ich verwende in meinem Code die 1,1V interene Aref. Wenn du das übernimmst solltest du die 9V auf ca. 1V teilen.

    Hier der Code:

    Code:
    volatile U16 ADC_value = 0;
    
    ISR(ADC_vect)                                                                // ADC-Wert fertig umgewandelt:
    {
        ADC_value = ADCW;
        ADCSRA = (1<<ADSC) | (1<<ADEN) | (1<<ADPS1) | (1<<ADPS0)| (1<<ADIE);    // ADC-Umwandlung erneut starten
    }
    
    int main(void)
    {
        DDRB =  0b00000001;                                                        // IOs konfigurieren
        PORTB = 0b00000000;
    
        ADMUX = (1<<REFS1) | (1<<MUX1) | (1<<MUX0);                                // ADC konfigurieren: interne Referenz 1,1V und Eingang ADC3
        ADCSRA = (1<<ADEN) | (1<<ADPS1) | (1<<ADPS0) | (1<<ADIE);                // Prescaller FCPU : 8 und Interrupt bei fertiger Umwandlung
    
        sei ();                                                                    // Interrupts aktivieren
        ADCSRA = (1<<ADSC) | (1<<ADEN) | (1<<ADPS1) | (1<<ADPS0)| (1<<ADIE);    // ADC-Umwandlung starten
    
        while (1)
        {
    // dein Programm...
    // z.B.: if (ADV_value > xxx)
        }
    }
    Viel Spaß beim einarbeiten und lernen!

    Viele Grüße
    Andreas

    - - - Aktualisiert - - -

    ...was vielleicht noch als Info fehlt: ADC_value ist die Spannung in 1/1024el von Aref. Also 0V = 0 und 1,1V bzw. Aref = 1023.

Ähnliche Themen

  1. Problem mit Attiny 13A-PU
    Von Der Einsteiger im Forum Basic-Programmierung (Bascom-Compiler)
    Antworten: 34
    Letzter Beitrag: 19.07.2013, 16:39
  2. [ERLEDIGT] Problem mit MOSFET IRF1010N an ATtiny
    Von Jazz im Forum Elektronik
    Antworten: 11
    Letzter Beitrag: 20.12.2011, 16:21
  3. Attiny 2313 programmieren problem
    Von Amutep im Forum Elektronik
    Antworten: 4
    Letzter Beitrag: 12.08.2007, 22:26
  4. Problem mit ATtiny 15
    Von humus im Forum AVR Hardwarethemen
    Antworten: 7
    Letzter Beitrag: 29.06.2006, 23:47
  5. Problem mit ATTiny 12
    Von khazad im Forum Basic-Programmierung (Bascom-Compiler)
    Antworten: 10
    Letzter Beitrag: 25.01.2005, 21:01

Benutzer, die dieses Thema gelesen haben: 0

Derzeit gibt es keine Benutzer zum Anzeigen.

Berechtigungen

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

Solar Speicher und Akkus Tests