Powrót

Generator fali prostokątnej, część 2

Po opisaniu części sprzętowej nadszedł czas na zagłębienie się w oprogramowanie. To pozwoli na końcową weryfikację montażu i pierwsze zabawy z nowym sprzętem, który znajdzie zastosowanie z warsztacie hobbysty.

Uzyskanie poprawnego napięcia zasilającego, jak pokazuje rysunek 12 z poprzedniej części artykułu, oznacza, że działa sprawnie stabilizator napięcia. W układzie jest jeszcze jedno miejsce o dużej wrażliwości na poprawność montażu, ale tu już potrzebne jest oprogramowanie.

Nowy program

W środowisku narzędziowym Atmel Studio jest utworzony nowy projekt. W konstrukcji generatora używany jest mikrokontroler ATMEGA32, toteż taki należy wskazać jako docelowy w projekcie (rysunek 1).

Rysunek 1

Po jego utworzeniu i dołączeniu do niego wszystkich niezbędnych modułów, wygenerowaniu kodu wynikowego i umieszczeniu go w pamięci mikrokontrolera można dokończyć uruchamianie generatora. Jednak wcześniej należy opisać jego cechy użytkowe, a te są ściśle związane z zaprojektowaną klawiaturą. Składa się ona z 24 przycisków zorganizowanych w matrycę o 3 rzędach i 8 kolumnach. Znaczenie poszczególnych przycisków, ściśle odzwierciedlające ich rozmieszczenia na płytce drukowanej pokazuje rysunek 2.

Rysunek 2

Można tu dostrzec przyciski pozwalające na wprowadzanie liczb wraz ze znakiem przecinka, gdyż z założenia częstotliwość generowanego sygnału może być wyrażona z dokładnością do dziesiątych części Hz. Wprowadzanie jakichkolwiek danych zwyczajowo wymaga dodatkowych przycisków związanych z edycją, akceptacją oraz zaniechaniem. Na standardowej klawiaturze komputera zawsze znajdziemy klawisz Enter, którego użycie oznacza zakończenie wprowadzania danych, połączone z ich akceptacją – generator natychmiast jest programowany do uzyskania tej częstotliwości. Przeciwieństwem takiej operacji jest zakończenie wprowadzania połączone z zaniechaniem. Do takich celów zwyczajowo jest używany klawisz ESC, który również występuje w naszej małej klawiaturze. Zaniechanie wprowadzania danych oznacza, że generowana częstotliwość nie ulega zmianie. Równie przydatnym przyciskiem jest odpowiednik klawiaturowego Backspace, którego naciśnięcie pozwala na usunięcie z wprowadzanych danych ostatniego znaku. Może on okazać się przydatnym w trakcie wprowadzania wartości częstotliwości generowanego sygnału. Ze względu na to, że możliwe jest generowanie wyjściowej fali prostokątnej o różnych poziomach logicznych, klawiatura ma cztery przyciski, które pozwalają na ustalenie „amplitudy” w generowanym przebiegu.

W funkcjonalności generatora istnieje coś, co nazwałem profilem. Jest to złożenie dwóch informacji: częstotliwości oraz amplitudy generowanego sygnału. Po wprowadzeniu tych nastaw (ich wartości są wyświetlane przez moduł LCD), istnieje możliwość zapisania bieżącego profilu w pamięci nieulotnej mikrokontrolera (pamięć EEPROM, w ATMEGA32 wielkość tej pamięci wynosi 1 kB) przy użyciu przycisku Write. Zostało przewidziane osiem pozycji (na osiem niezależnych profili). Z związku z tym możliwe jest ich przeglądanie poprzez naciśnięcie przycisku List lub pobranie danych z wcześniej zapisanych danych jako bieżącego profilu (wartość częstotliwości oraz amplituda jest pobrana z zapisanych danych) po naciśnięciu Read. W przypadku przeglądania tabeli zapisanych profili lub wybierania z niej pozycji, która stanie się bieżącym profilem, przydatne są dwa przyciski, których naciśnięcie oznacza „daj następny” (przycisk Next) lub „daj poprzedni” (przycisk Prev). Ostatni przycisk, opisany jako TSC, służy do ustawienia stanu wysokiej impedancji na wyjściu generatora. Przycisk ten działa jak „dwójka licząca” – każde jego naciśnięcie zmienia stan na przeciwny. Po włączeniu zasilania dla generatora, układ wyjściowy jest w stanie wysokiej impedancji do chwili określenia częstotliwości oraz amplitudy sygnału wyjściowego, aby nie być potencjalnym zagrożeniem dla zewnętrznego urządzenia, gdyż ono może tolerować przykładowo napięcie 2,5 V, a „startowo” generator miałby domyślnie określone 5 V.

Programowa obsługa klawiatury

Klawiatura składa się z 24 przycisków połączonych w matrycę o 3 rzędach i 8 kolumnach. Do jej obsługi przeznaczony został cały PORTB i część PORTA (jak pokazuje rysunek 3) i odbywa się ona w przerwaniach od upływającego czasu.

Rysunek 3

Uważny Czytelnik zapewne zauważy, że port wejściowy klawiatury jest współdzielony ze złączem programującym. W tym przypadku nie zachodzi żaden konflikt, gdyż ten port nie wnosi „żadnych zakłóceń” na linie używane w trakcie programowania (w AVR jest on wejściowy, więc mikrokontroler nie wymusza żadnych stanów). Matryca znakowa mając nienaciśnięty żaden przycisk również nie „przeszkadza” w trakcie programowania. Po jego zakończeniu sam programator wchodzi w stan wysokiej impedancji i nic nie wnosi na współdzielonych z klawiaturą liniach.

(…)

——– ciach! ——–

To jest tylko fragment artykułu, którego pełna wersja ukazała się w lipcowym numerze czasopisma Zrozumieć Elektronikę (ZE 7/2025). Pełną wersję czasopisma znajdziesz pod tym linkiem. Natomiast niepełna, okrojona wersja, pozwalająca zapoznać się z zawartością numeru ZE 7/2025 znajduje się tutaj.

Andrzej Pawluczuk
apawluczuk@vp.pl

 

Uwaga! Osoby, które nie są (jeszcze) stałymi Patronami ZE, mogą nabyć PDF-y z pełną wersję tego numeru oraz wszystkich innych numerów czasopisma wydanych od stycznia 2023, „stawiając kawę” (10 złotych za jeden numer czasopisma w postaci pliku PDF).
W tym celu należy kliknąć link (https://buycoffee.to/piotr-gorecki), lub poniższy obrazek
Postaw mi kawę na buycoffee.to
Następnie wybrać – Postaw kawę za:
– jeśli jeden numer ZE – 10 zł,
– jeśli kilka numerów ZE – Własna kwota. I tu wpisać kwotę zależną od liczby zamawianych numerów – wydań (N x 10 zł),
Wpisać imię nazwisko.
Podać adres e-mail.
Koniecznie zaznaczyć: „Chcę dodać dedykację/Wiadomość dla Twórcy” i tu zawsze trzeba wpisać, który numer lub numery ZE mamy wysłać na podany adres e-mailowy. Jeśli ma to być numer z tym artykułem trzeba zaznaczyć, że chodzi o ZE 7/2025.
UWAGA!!! E-mail z linkiem do materiałów (Smash) wysyłamy zazwyczaj w ciągu 24 godzin. Czasem zdarza się jednak, że trafia do spamu. Jeśli więc nie pojawi się w ciągu 48 godzin prosimy sprawdzić w folderze spam, a ewentualny problem zgłosić na adres: kontakt@piotr-gorecki.pl.