Hirdetés

Új hozzászólás Aktív témák

  • válasz Aryes #19343 üzenetére

    long readVcc()
    {
    long result; // Itt olvasod ki a belső referenciát AVCC-hez viszonyítva
    ADMUX = _BV(REFS0) | _BV(MUX3) | _BV(MUX2) | _BV(MUX1);
    delay(2);
    ADCSRA |= _BV(ADSC);
    while (bit_is_set(ADCSRA,ADSC));
    result = ADCL;
    result |= ADCH<<8;
    result = 1125300L / result; // 1023*1100mV osztva 1.1 értéke AVCC-re vetítve

    // ha 1023-at mértél, akkor AVCC 1100 mV
    // ha 256-ot mértél, akkor AVCC ~4400 mV
    return result; }

    Itt van fent a kód, sajnos fejből nem vágom ennyire a regisztereket, ezért csak egy régi kódomból tudtam kipuskázni, de lehetséges.

    Ahol megismerkedtem ezzel, ott Attiny45-öt táplálok direktben 18650-ről a gyerek egyik csillagprojektorában. Eredetileg elemmel ment és nem tudott magától kikapcsolni. Akksira váltottam, viszont azzal mire észreveszem a merülést a fényerőn, addigra kinyírtam volna a cellát. Szóval van benne egy szimulált "merülés" effekt, ami leveszi a LED-ek fényerejét, amikor a cella már közeledik a 3V-hoz.

Új hozzászólás Aktív témák