Generator alfabetu Morse’a

....nie pasujące gdzie indziej...
Ada20
Posty: 71
Rejestracja: niedziela 08 gru 2013, 13:26
Lokalizacja: Wroclaw

Generator alfabetu Morse’a

Post autor: Ada20 »

Witam !
Poproszę o tekst darmowego programu, który na wyjściu Attiny 13A,po podłączeniu do głośniczka, będzie generował falę akustyczna o częstotliwości 1000 Hz , z możliwością regulacji na inną częstotliwość.
Za pomocne odpowiedzi z góry dziękuję.
Pozdrawiam
Adela
Ostatnio zmieniony wtorek 11 mar 2014, 18:00 przez Ada20, łącznie zmieniany 1 raz.
Awatar użytkownika
Pyra
Site Admin
Posty: 8527
Rejestracja: niedziela 02 sie 2009, 20:35
Lokalizacja: Gądki

Post autor: Pyra »

Witaj
Czy musi być ATtiny? Bo problem można rozwiązać dużo prostszą metodą.
Pozdrawiam
Izali miecz godniejszy niżli topór w boju?
Piszmy po polsku, wszak jesteśmy Polakami.
Ada20
Posty: 71
Rejestracja: niedziela 08 gru 2013, 13:26
Lokalizacja: Wroclaw

Post autor: Ada20 »

Witam !
Nie musi być Attiny 13 ale było by dobrze.
Mam taki generator na tranzystorze ,oporniku,kondensatorze.
Mam też gotowca w postaci brzęczyka piezo
Mam też inne rozwiązania.
Ale chętnie dowiem się o innych rozwiązaniach.
Mam pytanie ,jak kupię w sklepie Attiny 13 A ,to aby wgrać program, czy dobrze by było, coś z nią zrobić ,(erase,itp),czy tylko wgrać program,wgrywam program tylko do flash czy do Epprom też?.
Pozdrawiam
Awatar użytkownika
Pyra
Site Admin
Posty: 8527
Rejestracja: niedziela 02 sie 2009, 20:35
Lokalizacja: Gądki

Post autor: Pyra »

Witam
Przepraszam, ale teraz muszę nadrobić zaległości forumowe i nie tylko...
Na szybko, zerknij do datasheet ATtiny13, masz tam rozdział dotyczący Timer0.
Tryb CTC służy właśnie do generowania fali prostokątnej.
Ustawienia procka to 9,6MHz, Divide by 8 ON (domyslne) i Timer0 przescaler = 8.
Kwestia wyliczenia lub dobrania wartości Compare (OCR0A lub OCR0B)
Pozdrawiam
PS: Wieczorem może znajdę chwilkę...
Izali miecz godniejszy niżli topór w boju?
Piszmy po polsku, wszak jesteśmy Polakami.
Ada20
Posty: 71
Rejestracja: niedziela 08 gru 2013, 13:26
Lokalizacja: Wroclaw

Post autor: Ada20 »

Witam
Ale czy fala prostokątna będzie słyszalna na głośniczku ?
Może na Attiny 13A,Atmega 8a, nie da się zrobić generatora?
Pozdrawiam
Awatar użytkownika
Pyra
Site Admin
Posty: 8527
Rejestracja: niedziela 02 sie 2009, 20:35
Lokalizacja: Gądki

Post autor: Pyra »

Witam
Się namęczyłem a oderwał mi się kabelek od włącznika :evil:

Kod: Zaznacz cały

#include <avr/io.h>

int main&#40;&#41;
&#123;
   DDRB|= &#40;1<<PB0&#41;|&#40;1<<PB1&#41;;		//ustaw PB0 jako wjście
   TCCR0A|=&#40;1<<WGM01&#41;;              //uaktywnij CTC
   TCCR0A|=&#40;1<<COM0A0&#41;;             //przełącz stan pinu
   TCCR0B|=&#40;1<<CS01&#41;;				//prescaler = 8

   OCR0A = 72;
   while &#40;1&#41;&#123;&#125;;

&#125;; 
Opis chyba jasny. Tryb CTC powoduje, że Timer0 zlicza od zera do momentu kiedy licznik zrówna się z zadaną w OCR0A wartością, po czym jest natychmiast kasowany i liczy ponownie.
Po ustawieniu COM0A0 na 1, stan pinu po każdym zliczeniu jest zmieniany na przeciwny, czyli generowana jest fala prostokątna.
Przy wartości OCR0A = 72 masz częstotliwość około 1,01kHz. Myślę, że wystarczy.
Głośniczek musisz podłączyć przez rezystor, minimum 150&#937;, a sądzę, że 1k&#937; wystarczy aby dźwięk był słyszalny. Jeśli podłączysz buzzer, to możesz zrezygnować z rezystora.
Po zakupie ATtiny, ma on domyślnie ustawioną częstotliwość zegara 9,6MHz i podział prze 8, więc finalnie, procek taktowany jest 1,2MHz, więc nic w fusebitach nie musisz zmieniać, eeprom też jest niepotrzebny.
Pozdrawiam
Izali miecz godniejszy niżli topór w boju?
Piszmy po polsku, wszak jesteśmy Polakami.
Ada20
Posty: 71
Rejestracja: niedziela 08 gru 2013, 13:26
Lokalizacja: Wroclaw

Post autor: Ada20 »

Witam
Dziękuję bardzo,czy sprawdzałeś jak to słychać na głośniczku ,albo innym przetworniku.
Czytałam,ze fala prostokątna daje na głośniku chrypienie.
Bardzo mi pomogłeś teraz i poprzednio w temacie zmiany polaryzacji.
Pozdrawiam
Adela
Awatar użytkownika
Pyra
Site Admin
Posty: 8527
Rejestracja: niedziela 02 sie 2009, 20:35
Lokalizacja: Gądki

Post autor: Pyra »

Witam
Ada20 pisze:Czytałam,ze fala prostokątna daje na głośniku chrypienie.
Niestety taki jest efekt sterowania przebiegiem prostokątnym... Można co prawda zastosować filtr dolnoprzepustowy na 1kHz, ale chyba mija się to z celem.
Pozdrawiam
Izali miecz godniejszy niżli topór w boju?
Piszmy po polsku, wszak jesteśmy Polakami.
Ada20
Posty: 71
Rejestracja: niedziela 08 gru 2013, 13:26
Lokalizacja: Wroclaw

Post autor: Ada20 »

Witam
Czy jest jakiś scalak ,jaki ?,do którego można podłączyć ,1 opornik i 1 kondensator,aby dał czysty dzwięk(chyba sinus),a może jest scalak do którego nie potrzeba dawać opornika i kondensatora?.
Pozdrawiam
Awatar użytkownika
Pyra
Site Admin
Posty: 8527
Rejestracja: niedziela 02 sie 2009, 20:35
Lokalizacja: Gądki

Post autor: Pyra »

Witam
Aż tak prosto to się nie da...
Jeśli chodzi o rozwiązania analogowe to popatrz
Cyfrowo tez można to rozwiązać, ale program już będzie dużo bardziej skomplikowany. Czysty sinus jest ciężko uzyskać, ale można przebieg zbliżony kształtem, taki schodkowany.
Metody są dwie, cykliczne zmiany częstotliwości PWM, lub podawanie sygnałów na prosty przetwornic C/A z drabinki R2R. Niestety ale tu już ATtiny13 nie wystarczy, dobry by był ATtiny26 lub mega8.
Tylko jeśli chodzi o generatorek dla uzyskania pikania, to trochę strzelanie z armaty do komarów.
Pozdrawiam
Izali miecz godniejszy niżli topór w boju?
Piszmy po polsku, wszak jesteśmy Polakami.
Ada20
Posty: 71
Rejestracja: niedziela 08 gru 2013, 13:26
Lokalizacja: Wroclaw

Post autor: Ada20 »

Witam
Diękuję bardzo za pomoc.
Pozdrawiam
Adela
Awatar użytkownika
Saud
Posty: 115
Rejestracja: wtorek 02 lut 2010, 21:01
Lokalizacja: Z miasta stu mostów

Post autor: Saud »

Witam
Jak masz Androida polecam Pro Audio Tone Generator
Prosto szybko i skutecznie :mrgreen:
Awatar użytkownika
Pyra
Site Admin
Posty: 8527
Rejestracja: niedziela 02 sie 2009, 20:35
Lokalizacja: Gądki

Post autor: Pyra »

Witam
W związku z moim wrodzonym lenistwem, musimy podzielić się zadaniami.
Fajnie by było gdybyś przygotowała tablicę z próbkami sinusa. Wystarczy obliczyć wartości dla kolejnych kątów o skoku 180°/16 i pomnożyć przez 126.
Ja zrobię resztę.
Program będzie pobierał próbki i następnie cyklicznie ustawiał taką wartość PWM. Na wyjściu wystarczy rezystor i kondensator i będziemy mieli sinusa.
W związku z brakiem drugiego timera w ATtiny13A będzie trzeba zrobić timer programowy, który będzie wpisywał próbki co 1/32/1000s.
Pozdrawiam
Izali miecz godniejszy niżli topór w boju?
Piszmy po polsku, wszak jesteśmy Polakami.
Ada20
Posty: 71
Rejestracja: niedziela 08 gru 2013, 13:26
Lokalizacja: Wroclaw

Post autor: Ada20 »

Witam
Nie musi być Attiny 13A,może być Atmega 8A,a najlepiej na obu.
Co do zadanie jakie mi dałeś ,to nie mam pojęcia jak się do tego zabrać,ale spróbuję.
Myślę ,ze można to zrobić na CD 4047,CD4060,i inne,ale wtedy chyba nie da się zrobić sinus.
Scalak ICL8038 ma na wyjściu,sinus,kwadrat ,piła.
Co do programu na Androida ,to zobaczę,na Windows jest sporo takich programów.
Mam dwa klucze wojskowe do telegrafii ,dostałam je ponad 10lat temu, po likwidowanym L.O.K.
Pozdrawiam
Awatar użytkownika
Pyra
Site Admin
Posty: 8527
Rejestracja: niedziela 02 sie 2009, 20:35
Lokalizacja: Gądki

Post autor: Pyra »

Witam
Ada20 pisze: Mam dwa klucze wojskowe do telegrafii ,dostałam je ponad 10lat temu, po likwidowanym L.O.K.
No to pozostaje Tobie tylko jedno wyjście, zbudować oryginały :mrgreen:
Nadajnik lampowy

Pozdrawiam
Izali miecz godniejszy niżli topór w boju?
Piszmy po polsku, wszak jesteśmy Polakami.
Zablokowany