Kondensator jako pamięć
Witam
Mamy Vref o wartości 1,1V i ADC o rozdzielczości 10 bitów = 1024, obliczamy więc wartość napięcia dla jednego bitu.
1,1V / 1024 = 0,001074V
Teraz trzeba wyliczyć podział dla dzielnika napięcia:
R1 / (R1 + R2)
4700 / (4700 +19100) = 0,197
Biorąc pod uwagę, że dzielnik pomiarowy mierzy napięcie za diodą zabezpieczającą procesor, musimy od napięcia zasilania odjąć spadek napięcia na niej, dioda Schotky, przy bardzo małym prądzie ma około 0,2 - 0,25V
załóżmy:
3,0V - 0,2V = 2,8V
Wyliczamy teraz napięcie na wejściu przetwornika ADC:
2,8V x 0,197 = 0,552V (w zaokrągleniu)
teraz 0,552V / 0,001074V = 514.
Biorąc jednak pod uwagę, że występuje rozrzut parametrów elementów, trzeba jeszcze doświadczalnie skorygować tę wartość.
Pozdrawiam
Mamy Vref o wartości 1,1V i ADC o rozdzielczości 10 bitów = 1024, obliczamy więc wartość napięcia dla jednego bitu.
1,1V / 1024 = 0,001074V
Teraz trzeba wyliczyć podział dla dzielnika napięcia:
R1 / (R1 + R2)
4700 / (4700 +19100) = 0,197
Biorąc pod uwagę, że dzielnik pomiarowy mierzy napięcie za diodą zabezpieczającą procesor, musimy od napięcia zasilania odjąć spadek napięcia na niej, dioda Schotky, przy bardzo małym prądzie ma około 0,2 - 0,25V
załóżmy:
3,0V - 0,2V = 2,8V
Wyliczamy teraz napięcie na wejściu przetwornika ADC:
2,8V x 0,197 = 0,552V (w zaokrągleniu)
teraz 0,552V / 0,001074V = 514.
Biorąc jednak pod uwagę, że występuje rozrzut parametrów elementów, trzeba jeszcze doświadczalnie skorygować tę wartość.
Pozdrawiam
Izali miecz godniejszy niżli topór w boju?
Piszmy po polsku, wszak jesteśmy Polakami.
Piszmy po polsku, wszak jesteśmy Polakami.
Witam, od jakiegoś czasu zmagałem się z softem pyry, nie wiadomo co było nie tak, nie działały dwu i trzy kliki, a najniższy tryb moon to było tylko błyśnięcie na ok. 50% mocy.
Ze 20 razy lutowałem i rozlutowywałem kable by przeprogramować attiny, aż urwał się malutki pad od plusa(swoją drogą to wszyscy dają grube kable, mostkują sprężyny a w driverze są malutkie ścieżki po których powinno iść do 500mA....) i musiał kupić drugi.
Okazało się że fusebity były nie takie jakie trzeba, bowiem ckdiv8 było odznaczone, a powinno być zaznaczone, i tak jest w driverze z pierwszego postu, ak-47, ja natomiast miałem 105c, i w nim chinole mają wyłączony wspomniany fusebit.
Czyli w 105c musimy ustawić:
Divide by 8 - ON
Lub w hexie:
High: FF
Low: 6A
Druga sprawa, u mnie trzeba było zmienić wartość:
if (T1 > 50) Lklik++; //jeśli było napięcie, zwiększ licznik klików
na:
if (T1 > 120) Lklik++; //jeśli było napięcie, zwiększ licznik klików
Bo bez tego to zawsze po włączeniu latarki zmieniało mi tryb do przodu, nie wiem czemu, także zastosowałem kondensator 1uF...
Ze 20 razy lutowałem i rozlutowywałem kable by przeprogramować attiny, aż urwał się malutki pad od plusa(swoją drogą to wszyscy dają grube kable, mostkują sprężyny a w driverze są malutkie ścieżki po których powinno iść do 500mA....) i musiał kupić drugi.
Okazało się że fusebity były nie takie jakie trzeba, bowiem ckdiv8 było odznaczone, a powinno być zaznaczone, i tak jest w driverze z pierwszego postu, ak-47, ja natomiast miałem 105c, i w nim chinole mają wyłączony wspomniany fusebit.
Czyli w 105c musimy ustawić:
Divide by 8 - ON
Lub w hexie:
High: FF
Low: 6A
Druga sprawa, u mnie trzeba było zmienić wartość:
if (T1 > 50) Lklik++; //jeśli było napięcie, zwiększ licznik klików
na:
if (T1 > 120) Lklik++; //jeśli było napięcie, zwiększ licznik klików
Bo bez tego to zawsze po włączeniu latarki zmieniało mi tryb do przodu, nie wiem czemu, także zastosowałem kondensator 1uF...
Doctore, widzę że w końcu wziąłeś się za temat programowania A13 - chwali się chwali się Kilka dni pracy, myślenia, lektury i napiszesz sam swój pierwszy soft
Moje sterowniki:
AHE+ v1
KHE
v201 / v211
AHE+ v1
KHE
v201 / v211
Patrząc na schemat wpadły mi do głowy pewne pomysły.
Przy małych latarkach można by zminimalizować pobór prądu, przez pozbycie się dzielnika napięcia, na którym cały czas mamy pobór prądu. W takim wypadku można wykorzystać jedno wyjście procesora wraz z rezystorem podciągającym i jakiś jeden rezystor podłączony na stałe do masy.
Dodatkowo można wykorzystać wyjście procesora i sterować diodę bezpośrednio (oczywiście przez rezystor) lub w ogóle podłączyć równolegle jakąś oporność i użyć watchdog'a ustawionego na kilka sekund do pomiaru napięcia raz na jakiś czas.
Oczywiście tak wszytko trzeba będzie kalibrować, ale to już mniejszy problem.
Przy małych latarkach można by zminimalizować pobór prądu, przez pozbycie się dzielnika napięcia, na którym cały czas mamy pobór prądu. W takim wypadku można wykorzystać jedno wyjście procesora wraz z rezystorem podciągającym i jakiś jeden rezystor podłączony na stałe do masy.
Dodatkowo można wykorzystać wyjście procesora i sterować diodę bezpośrednio (oczywiście przez rezystor) lub w ogóle podłączyć równolegle jakąś oporność i użyć watchdog'a ustawionego na kilka sekund do pomiaru napięcia raz na jakiś czas.
Oczywiście tak wszytko trzeba będzie kalibrować, ale to już mniejszy problem.
Jeśli procesor jest z rodziny ATtiny25/45/85 dzielnik napięcia nie jest potrzebny. Sprawę załatwia ustawienie stosownego napięcia odniesienia programowo. Uściślając, napięciem odniesienia jest Vcc, a mierzymy zamiast zasilania wewnętrzne napięcie odniesienia. Do tego stosowny algorytm.
Sterownik extended v3.5 HE <klik>
Instrukcje sterowników w PDF <klik>
kontakt: info(at)krypton(dot)pl
(podstawić @ i . w stosowne miejsca)
Instrukcje sterowników w PDF <klik>
kontakt: info(at)krypton(dot)pl
(podstawić @ i . w stosowne miejsca)
Można ale każdą sztukę trzeba by indywidualnie korygować, czasem dosyć sporo lub dać kod umożliwiający taką korektę po zaprogramowaniu pamięci flash a to znów zabierze znaczną część z 1kB. Jak się steruje diodą przez PWM, to i tak nie można uśpić całkowicie procka ... kiedyś też myślałem jak to zrobić, żeby procek zjadał jak najmniej ale sensu chyba większego nie ma. Udało mi się wycisnąć ponad 120 dni ciągłego światła w najniższym trybie ... wątpię, że komuś zrobi różnicę jakby to było nawet 2x tylegalusz pisze:W takim wypadku można wykorzystać jedno wyjście procesora wraz z rezystorem podciągającym i jakiś jeden rezystor podłączony na stałe do masy
Zgadzam się z przedmówcami.
Ja dopiero zaczynam zabawę z "latarkami". Obecnie czekam na dostawę kilku SingFire SF-348 które zamierzam zmodować dla potrzeb EDC. Stąd już teraz myślę nad prototypem driverka.
W moim przypadku gdzie mamy do czynienia z driverem o średnicy mniejszej niż 10mm nawet pozbycie się jednego rezystora będzie miało znaczenie.
Właśnie dlatego zamierzam skorzystać z kondensatora jako pamięci, bo będzie to zajmowało mniej miejsca (w zasadzie będą dolutowane 2 kondensatory bezpośrednio do wyprowadzeń attiny).
Ja dopiero zaczynam zabawę z "latarkami". Obecnie czekam na dostawę kilku SingFire SF-348 które zamierzam zmodować dla potrzeb EDC. Stąd już teraz myślę nad prototypem driverka.
W moim przypadku gdzie mamy do czynienia z driverem o średnicy mniejszej niż 10mm nawet pozbycie się jednego rezystora będzie miało znaczenie.
Właśnie dlatego zamierzam skorzystać z kondensatora jako pamięci, bo będzie to zajmowało mniej miejsca (w zasadzie będą dolutowane 2 kondensatory bezpośrednio do wyprowadzeń attiny).
Kod: Zaznacz cały
void Zakrestrybow() //sprawdzanie dopuszczalnego zakresu numeru trybu
{
if (Ntryb > 4) Ntryb = 1;
if (Ntryb < 1) Ntryb = 4;
eeprom_update_byte(&Numertrybu,Ntryb); //zapisz numer trybu jeśli się zmienił
}
void Jasnosci() //ustalanie poziomu jasności według trybu
{
switch(Ntryb)
{
case 1: OCR0B = 2; break; //0,8%
case 2: OCR0B = 64; break; //25%
case 3: OCR0B = 127; break; //50%
case 4: OCR0B = 255; break; //100%
}
}
Coś jeszcze czy tylko tyle
Oraz czy podejdzie pod ten driver
https://m.fasttech.com/products/1612/10 ... t-driver-n
Czy musi być tylko4amc
Witam
Z tego co pamiętam, ma chyba wysoką częstotliwość PWM, i niskie tryby nie działają poprawnie na 8xAMC
Pozdrawiam
To wystarczy. Pierwszy określa co ma zrobić program po dojściu do skrajnego trybu, drugi określa wartość jasności dla określonego trybu.michal13031986 pisze:...Czyli jak bym chciał mieć np. 3 lub 5trybów to zamiast 4 wpisać 3 lub 5, oraz dopisać jak coś albo wiadomo skasować jeden wpis odnośnie case?
Z tego co pamiętam, ma chyba wysoką częstotliwość PWM, i niskie tryby nie działają poprawnie na 8xAMC
Pozdrawiam
Izali miecz godniejszy niżli topór w boju?
Piszmy po polsku, wszak jesteśmy Polakami.
Piszmy po polsku, wszak jesteśmy Polakami.
Witam, właśnie chyba teraz czuję, że temat latarek jeszcze bardziej mnie wciągnął, przeglądam programatory, płytki stykowe itd oraz zacznie się nauka programowania, do tego tutaj jest podany kod który będę dokładnie analizował, doskonalił na swoje potrzeby przerabiał wiem tylko jedno, z czasem pewnie będziecie mnie tu mieli dość z pytaniami (co niektórzy pewnie już mają hihi). Kodem później po skończonej pracy podzielę się z wami