Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.

Problem oko generatora funkcija Arduino UNO

[es] :: Elektronika :: Mikrokontroleri :: Problem oko generatora funkcija Arduino UNO

[ Pregleda: 1438 | Odgovora: 4 ] > FB > Twit

Postavi temu Odgovori

Autor

Pretraga teme: Traži
Markiranje Štampanje RSS

Kraguj_KG
Filip Markovic
Jagodina

Član broj: 44091
Poruke: 1
*.dynamic.sbb.rs.



+3 Profil

icon Problem oko generatora funkcija Arduino UNO14.06.2016. u 21:53 - pre 95 meseci
Pozdrav svima!
Trebala bi mi mala pomoc oko jednog projekta, pronasao sam ga na netu i bakcem se sa njime par dana...
Kod je sledeci:


//code modified for improvement from http://forum.arduino.cc/index.php?topic=8563.0
//connect pin 9 -> 10k Ohm + (series with)100nF ceramic cap -> GND, tap the sinewave signal from the point at between the resistor and cap.

float wav1[3];//0 frequency, 1 unscaled amplitude, 2 is final amplitude
int average;
const int Pin = 9;
float time;
float percentage;
float templitude;
float offset = 2.5; // default value 2.5 volt as operating range voltage is 0~5V
float minOutputScale = 0.0;
float maxOutputScale = 5.0;
const int resolution = 1; //this determines the update speed. A lower number means a higher refresh rate.
const float pi = 3.14159;

void setup() {
wav1[0] = 50; //frequency of the sine wave
wav1[1] = 2.5; // 0V - 2.5V amplitude (Max amplitude + offset) value must not exceed the "maxOutputScale"
TCCR1B = TCCR1B & 0b11111000 | 1;//set timer 1B (pin 9) to 31250khz
pinMode(Pin, OUTPUT);
//Serial.begin(115200);//this is for debugging
}

void loop() {
time = micros()% 1000000;
percentage = time / 1000000;
templitude = sin(((percentage) * wav1[0]) * 2 * pi);
wav1[2] = (templitude * wav1[1]) + offset; //shift the origin of sinewave with offset.
average = mapf(wav1[2],minOutputScale,maxOutputScale,0,255);
analogWrite(9, average);//set output "voltage"
delayMicroseconds(resolution);//this is to give the micro time to set the "voltage"

}

// function to map float number with integer scale - courtesy of other developers.
long mapf(float x, float in_min, float in_max, long out_min, long out_max)
{
return (x - in_min) * (out_max - out_min) / (in_max - in_min) + out_min;
}

Sada, lepo sam povezao RC filter izmedju Pin 9 i GND ali posto nemam osciloskop da posmatram signal da li neko mozda ima predlog kako da preradim ovaj vec postojeci kod da prikazuje sinusoide npr. na serial monitoru (serial ploter)?

Mozda je glupo pitanje ali posto sam pocetnik u ovome, svaka pomoc je dobrodosla :)

Drugari, hvala unapred na pomoci!

[Ovu poruku je menjao Kraguj_KG dana 14.06.2016. u 23:33 GMT+1]
Filip
 
Odgovor na temu

mikikg
System administrator
Srbija

Član broj: 3779
Poruke: 5059
*.dynamic.sbb.rs.

Sajt: yu3ma.net


+505 Profil

icon Re: Problem oko generatora funkcija Arduino UNO15.06.2016. u 00:59 - pre 95 meseci
Nisam siguran da je to izvodljivo, bar ne za te brzine signala.
Dodatno u tom projektu su malo izmesali jedinice za frekvenciju, nije khz (niti kHz) nego Hz ...

Ako nemas osciloskop mozda ti pomogne ovo:
https://www.zeitnitz.eu/scope_en
Site about Software Defined Radio – SDR
http://yu3ma.net/
https://github.com/yu3ma
On-line LM317 kalkulator
 
Odgovor na temu

mikikg
System administrator
Srbija

Član broj: 3779
Poruke: 5059
*.dynamic.sbb.rs.

Sajt: yu3ma.net


+505 Profil

icon Re: Problem oko generatora funkcija Arduino UNO15.06.2016. u 10:45 - pre 95 meseci
Moze da se salje preko seriske linije nazad u PC vrednost modulacionog signala (ono sto ide u PWM) ako si to hteo ali to ne moze da radi brze od par kHz.
Takodje se postavlja pitanje zasto bi to tako radio, ako generises sinus, to je sinus, mozes da ga iscrtas uvek u nekom programu ili EXCEL matematickim putem, nema potrebe da ti to sad radi Arduino pa ti od toga da crtac.
Logicnije je pratiti realan signal sa PWM izlaza provucen kroz RC filter, njegova analogna vrednost u vremenu a to mozes da vidis samo pomocu osciloskopa, pravog ili preko zvucne kartice i programa koji sam linkovao.
Site about Software Defined Radio – SDR
http://yu3ma.net/
https://github.com/yu3ma
On-line LM317 kalkulator
 
Odgovor na temu

Predrag Supurovic
Pedja YT9TP
Užice

Član broj: 157129
Poruke: 6279

Sajt: pedja.supurovic.net


+1570 Profil

icon Re: Problem oko generatora funkcija Arduino UNO15.06.2016. u 11:08 - pre 95 meseci
Nemaš osciloskop? Ako ti treba za audio frekvencije probaj https://www.google.rs/search?q=android+osciloscope
 
Odgovor na temu

bogdan.kecman
Bogdan Kecman
"specialist"
Oracle
srbistan

Član broj: 201406
Poruke: 15887
*.dynamic.sbb.rs.

Sajt: mysql.rs


+2377 Profil

icon Re: Problem oko generatora funkcija Arduino UNO18.06.2016. u 00:48 - pre 95 meseci
UNO je preslab da generise AWG sa PWM-om, ali ima dovoljno izlaza (8 dovoljno), dodas ladder 8bitni dac (malo otpornika, imas linkove na pp sto sam ti odgovorio) i tuces na taj dac i imas AWG bez problema i na UNO
 
Odgovor na temu

[es] :: Elektronika :: Mikrokontroleri :: Problem oko generatora funkcija Arduino UNO

[ Pregleda: 1438 | Odgovora: 4 ] > FB > Twit

Postavi temu Odgovori

Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.