Skocz do zawartości
ethanak

Tresowanie odkurzacza, czyli "wirtualna ściana" na ATtiny13

Pomocna odpowiedź

Podoba Ci się ten projekt? Zostaw pozytywny komentarz i daj znać autorowi, że zbudował coś fajnego!

Masz uwagi? Napisz kulturalnie co warto zmienić. Doceń pracę autora nad konstrukcją oraz opisem.

Właśnie zaakceptowałem Twój opis, możesz go teraz zgłosić do akcji rabatowej umieszczając link w temacie zbiorczym. Dziękuję za przedstawienie ciekawego projektu, zachęcam do prezentowania kolejnych DIY oraz aktywności na naszym forum 🙂

Udostępnij ten post


Link to post
Share on other sites

W końcu coś nie na wszędobylskim arduino ale w ostatnim kodzie widzę _delay_ms(10) a można by uśpić.

Udostępnij ten post


Link to post
Share on other sites

Można by było, ale... akurat tutaj na 10 msec zapalona jest dioda. Pomijając bezsens usypiania kontrolera jeśli z jakiegoś jego pinu pobierame jest zasilamie dla diody nie mogę chyba bezkarnie zmieniać co chwilę olresu watchdoga.

A teraz wybacz bo siedzę w pociągu, praktycznie nie widzę tego co piszę  jakby co to jestem do dyspozycji jutro.

Udostępnij ten post


Link to post
Share on other sites
5 minut temu, ethanak napisał:

nie mogę chyba bezkarnie zmieniać co chwilę olresu watchdoga.

Możesz, a usypiać nie trzeba dp Power-down wystarczy IDLE a wtedy timer może wybudzić.

Udostępnij ten post


Link to post
Share on other sites

A ile tych timerów ma attiny13?

poza tym usypianie attiny na 10 milisekund w czasie których świeci leda, w dodatlu dzieje się to raz na kilka sekund w urządzeniu zasilanym z sieci to chyba sztuka dla sztuki.

Udostępnij ten post


Link to post
Share on other sites
3 godziny temu, ethanak napisał:

w urządzeniu zasilanym z sieci to chyba sztuka dla sztuki

Zmniejsza EMI a jeszcze

Dnia 8.07.2019 o 11:01, ethanak napisał:

(jeśli będę robił wersję na baterie)

 

Udostępnij ten post


Link to post
Share on other sites
7 godzin temu, InspektorGadzet napisał:

a jeszcze

Dnia 8.07.2019 o 11:01, ethanak napisał:

(jeśli będę robił wersję na baterie)

 

No to żeś pojechał po bandzie. Wyjąłeś cytat z kontekstu nie zwracając uwagi na to, że dotyczył on zupełnie innego zagadnienia (pomiaru napięcia zasilania mikrokontrolera, który nie ma wbudowanej takiej możliwości) oraz zupełnie innego urządzenia (kod w którym znalazłeś tego delaya dotyczył akurat urządzenia stricte stacjonarnego zasilanego z sieci, nie wiem czy zauważyłeś że opisałem dwa różne).

Rozumiem, że usypianie procesora da w tym przypadku zmniejszenie globalnej emisji CO2, zużycia węgla, poprawi warunki pracy górników i hutników na całym świecie oraz wpłynie na zmianę rządu na lepszy. Ale w pewnym momencie (pamiętaj: że to usypianie dotyczy - nie chce mi się liczyć, ale gdzieś tak 0.2% czasu, oszczędność energii poniżej rozdzielczości posiadanych przeze mnie mierników) można powiedzieć "stop, piszemy podręcznik programowania AVR-ów dla paranoików i osób cierpiących na nerwicę natręctw czy może program do obsługi mrygającej ledy?" i przesadzanie pozostawić ogrodnikom. Kapuście to dobrze robi... informatyce i elektronice raczej nie.

Pytanie kontrolne: czy pisząc w C zawsze usilnie wystrzegasz się goto (bo to przecież samo zuo) i stosujesz pięć zmiennych pomocniczych żeby np. wyjść z zagnieżdżonej pętli?

Udostępnij ten post


Link to post
Share on other sites
(edytowany)

No widzisz. A najprawdopodobniej nie próbowałbyś nawet myśleć o goto wiodącym w górę kodu do wnętrza pętli (chociaż teoretycznie taka sztuczka nie jest zakazana, każdy programista COBOL-a stwierdzi że to przecież naturalne i na tym polega sztuka programowania).

Jeśli powstanie wersja na baterie/akumulatorek (co jest możliwe, kolega mnie już pytał za ile bym coś takiego zrobił) to nie będzie mi zależało na tym aby wycisnąć jeszcze pięć minut pracy ale na poprawieniu błędu z oryginalnej "ściany" - czyli dodaniu informacji o wyczerpującym się źródle zasilania. I dużo ważniejsze będzie to, by urządzenie odpowiednio wcześnie dało znać że chce jeść (czyli co najmniej 48h) niż te minuty.

Bo w sumie dużo więcej niż 10 msec raz na kilka sekund można wycisnąć wywalając _delay_us(7500) - który jest tu użyty dwa razy na 160 msec -  i zastępując go właśnie idle i timerem (w końcu mogę ten cały jeden timer w ATtiny13 wykorzystać naprzemiennie do PWM i generowania przerwania), to już dużo większa oszczędność energii, prawda? Pewnie tak zrobię, bo po pierwsze nigdy nie próbowałem a kiedyś musi być ten pierwszy raz, po drugie muszę dać Ci powód do czepiania się ciekawszych rzeczy niż moje delaye 🙂

Ale wracając do meritum, pozwól że zacytuję sam siebie:

Dnia 8.07.2019 o 11:01, ethanak napisał:

ani kody nie są mistrzostwem świata, ani ta cała elektronika nie jest najwyższego lotu. Dla mnie ważne było przedstawienie działającego i przydatnego urządzenia

Dixi!

Edytowano przez ethanak

Udostępnij ten post


Link to post
Share on other sites
45 minut temu, ethanak napisał:

w końcu mogę ten cały jeden timer w ATtiny13 wykorzystać naprzemiennie do PWM i generowania przerwania)

Dlatego z 8-nóżkowców preferuję Tiny25/45/85. To jeden z nielicznych AVR, który ma dead-time w PWM.

Udostępnij ten post


Link to post
Share on other sites

No i znów zacytuję samego siebie:

Dnia 8.07.2019 o 11:01, ethanak napisał:

W szufladzie leżały sobie dwie sztuki ATtiny13 (nadmiar ze starszego projektu) - więc postanowiłem je wykorzystać.

Zaznaczam, że ATtiny85 też leżały...

Wiem, wiem, Ty byś to zrobił na STM32 i jeszcze udowodnił że tak jest lepiej 😉

Udostępnij ten post


Link to post
Share on other sites

Dołącz do dyskusji, napisz odpowiedź!

Jeśli masz już konto to zaloguj się teraz, aby opublikować wiadomość jako Ty. Możesz też napisać teraz i zarejestrować się później.
Uwaga: wgrywanie zdjęć i załączników dostępne jest po zalogowaniu!

Gość
Napisz odpowiedź...

×   Wklejony jako tekst z formatowaniem.   Przywróć formatowanie

  Dozwolonych jest tylko 75 emoji.

×   Twój link będzie automatycznie osadzony.   Wyświetlać jako link

×   Twoja poprzednia zawartość została przywrócona.   Wyczyść edytor

×   Nie możesz wkleić zdjęć bezpośrednio. Prześlij lub wstaw obrazy z adresu URL.


×
×
  • Utwórz nowe...