Digispark ATtiny85 - sterowanie wentylatorem PWM (25kHz) - Wersja do druku +- Arduino Polska Forum (https://forum.arduinopolska.pl) +-- Dział: Korzystanie z Arduino (https://forum.arduinopolska.pl/dzial-korzystanie-z-arduino) +--- Dział: Piaskownica (https://forum.arduinopolska.pl/dzial-piaskownica) +--- Wątek: Digispark ATtiny85 - sterowanie wentylatorem PWM (25kHz) (/watek-digispark-attiny85-sterowanie-wentylatorem-pwm-25khz) |
Digispark ATtiny85 - sterowanie wentylatorem PWM (25kHz) - DaroX7 - 17-09-2017 Witam. Jako że jestem raczej początkującym w kwestji programowania Arduino to proszę o wyrozumiałość. Mam pewne urządzenie sieciowe, gdzie jak się później okazało niestety nie obsługuje PWM na którym mi zależało, bym mógł sterować wentylatorem PWM (4-kablowy wentylator PC 140mm), wiec zacząłem kombinować nad jakimś konwerterem lub mostem do obsługi PWM. Jako że mam pod ręką mini płytkę z ATtiny85, zacząłem szukać informacji w internecie nad obsługą PWM, niestety okazało się że ATtiny85 przy standardowych bibliotekach ma ograniczone możliwości generowania sygnałów PWM, a mi potrzeba 25kHz. Więc pogrzebałem jeszcze trochę w świecie internetu i znalazłem informacje o Fast PWM czyli sprzętowym PWM, który bazował na bezpośrednim odwołaniu do rejestrów. I tu zaczyna się mój problem, metodą prób i błędów doszedłem do wygenerowania tych 25kHz, ale wypełnienie w tym wypadku jest na 50% i tu właśnie nie wiem jak zmieniać je. Tu prosił bym osoby znające się z tematem rejestrów, by wytłumaczyły mi bardziej obsługę jak generować PWM o wysokiej częstotliwości ( timery, rejestry, bity itp) Niżej podaje kod jakim udało mi się wygenerować ~25kHz z wypełnieniem 50% na pinie P0: Kod: #include <avr/io.h> Główne moje założenie to: sterować wentylatorem PWM przez UART lub i2c przez dodatkowy układ i sterować wypełnieniem w locie. Pozdrawiam użytkownik DaroX7 |