Novo

Forum kao aplikacija na telefonu

Dodajte forum na početni ekran i koristite ga kao aplikaciju, sa menijem na dnu ekrana.

  • 4 odgovora
  • 1.919 pregleda

Najnovija ↓

Problem oko generatora funkcija Arduino UNO 14.06.2016. u 22:53 · pre 126 meseci
izmenjeno 1 put, poslednji put Kraguj_KG 14.06.2016. u 23:33
  1. Kraguj_KG14.06.2016. u 23:33zapis iz teksta poruke
#1
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!
Potpis
Filip
Re: Problem oko generatora funkcija Arduino UNO 15.06.2016. u 01:59 · pre 126 meseci #2
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
Potpis
Site about Software Defined Radio – SDR
http://yu3ma.net/
https://github.com/yu3ma
On-line LM317 kalkulator
Sviđa mi se1
Re: Problem oko generatora funkcija Arduino UNO 15.06.2016. u 11:45 · pre 126 meseci #3
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.
Potpis
Site about Software Defined Radio – SDR
http://yu3ma.net/
https://github.com/yu3ma
On-line LM317 kalkulator
Sviđa mi se1
Re: Problem oko generatora funkcija Arduino UNO 18.06.2016. u 01:48 · pre 126 meseci #5
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
Potpis
arhimed
http://www.mysql.rs/ | http://elco.crsndoo.com/
Prijavite se da biste odgovorili u ovoj temi.PrijavaRegistracija

Premeštanje teme