Strona 1 z 2
Generator alfabetu Morse’a
: wtorek 11 mar 2014, 17:55
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
: wtorek 11 mar 2014, 17:58
autor: Pyra
Witaj
Czy musi być ATtiny? Bo problem można rozwiązać dużo prostszą metodą.
Pozdrawiam
: wtorek 11 mar 2014, 18:03
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
: wtorek 11 mar 2014, 18:21
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ę...
: wtorek 11 mar 2014, 18:33
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
: wtorek 11 mar 2014, 22:41
autor: Pyra
Witam
Się namęczyłem a oderwał mi się kabelek od włącznika
Kod: Zaznacz cały
#include <avr/io.h>
int main()
{
DDRB|= (1<<PB0)|(1<<PB1); //ustaw PB0 jako wjście
TCCR0A|=(1<<WGM01); //uaktywnij CTC
TCCR0A|=(1<<COM0A0); //przełącz stan pinu
TCCR0B|=(1<<CS01); //prescaler = 8
OCR0A = 72;
while (1){};
};
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Ω, a sądzę, że 1kΩ 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
: wtorek 11 mar 2014, 22:54
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
: wtorek 11 mar 2014, 22:58
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
: wtorek 11 mar 2014, 23:12
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
: środa 12 mar 2014, 06:07
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
: środa 12 mar 2014, 07:28
autor: Ada20
Witam
Diękuję bardzo za pomoc.
Pozdrawiam
Adela
: środa 12 mar 2014, 14:14
autor: Saud
Witam
Jak masz Androida polecam Pro Audio Tone Generator
Prosto szybko i skutecznie
![Mr. Green :mrgreen:](./images/smilies/icon_mrgreen.gif)
: środa 12 mar 2014, 16:05
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
: środa 12 mar 2014, 18:10
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
: środa 12 mar 2014, 19:40
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
Nadajnik lampowy
Pozdrawiam