www.elektronik.si Seznam forumov www.elektronik.si
Forum o elektrotehniki in računalništvu
 
 PomočPomoč  IščiIšči  Seznam članovSeznam članov  SkupineSkupine  StatisticsStatistika  AlbumAlbum  DatotekeFilemanager DokumentacijaDocDB LinksPovezave   Registriraj seRegistriraj se 
  PravilaPravila  LinksBolha  PriponkePriponke  KoledarKoledar  ZapiskiZapiski Tvoj profilTvoj profil Prijava za pregled zasebnih sporočilPrijava za pregled zasebnih sporočil PrijavaPrijava 

Težava: Arduino Uno - Futaba T2PL

 
Objavi novo temo   Odgovori na to temo   Printer-friendly version    www.elektronik.si Seznam forumov -> Elektronika
Poglej prejšnjo temo :: Poglej naslednjo temo  
Avtor Sporočilo
dejand287
Član
Član



Pridružen-a: Sre 28 Sep 2011 14:56
Prispevkov: 59
Aktiv.: 0.39
Kraj: Duplek

PrispevekObjavljeno: Tor Jul 02, 2013 10:49 am    Naslov sporočila:  Težava: Arduino Uno - Futaba T2PL Odgovori s citatom

Pozdravljeni,

Pred kratkim sem kupil Arduino Uno ter Futaba T2PL. Ker imam v mislih projekt v katerem bi rad upravljal daljinsko vodenje izhodov z Futaba daljincem preko Arduino Uno mi to nekako ne uspeva. Premeril sem tudi izhod sprejemnika 1. kanala pri katerem dobim območje vrednosti:

1,94ms - skrajno desno
1,50ms - osnovni položaj
1,06ms - skrajno levo

Menim, da se težava pojavlja pri programiranju saj se ne dolgo srečujem s programiranjem Arduinota. Program sem vnesel po spodaj podani programski kodi, vendar je izhod 7 neprestano ˇ1ˇ, izhod 9 pa neprestanoˇ0ˇ. Trenutno ne vem ali so še potrebne kakšne dodatne nastavitve zato bi vas prosil za pomoč.


int motor1Left = 7;// defines pin 5 as connected to the motor
int motor1Right= 9;// defines pin 6 as connected to the motor
int enable = 5;
int channel1 = 2; // defines the channels that are connected


int Channel1 ; // Used later to


void setup ()
{
pinMode (motor1Left, OUTPUT);// initialises the motor pins
pinMode (motor1Right, OUTPUT);
pinMode (channel1, INPUT);// initialises the channels


Serial.begin (9600); // Sets the baud rate to 9600 bps
}

void loop ()
{
Channel1 = (pulseIn (channel1, HIGH)); // Checks the value of channel1
Serial.println (Channel1); //Prints the channels value on the serial monitor
delay(1000);


if (Channel1 > 1470 && Channel1 < 1510) /*These are the values that I got from my transmitter, which you may customize according to your transmitter values */
{
digitalWrite (motor1Left, LOW); // Sets both the
digitalWrite (motor1Right, LOW);// motors to low
analogWrite(enable, 100);
}

if (Channel1 < 1460) // Checks if Channel1 is lesser than 1300
{
digitalWrite (motor1Left, HIGH);// Turns the left
digitalWrite (motor1Right, LOW); // motor forward
analogWrite(enable, 100);
}

if (Channel1 > 1510) // Checks if Channel1 is greater than 1500
{
digitalWrite (motor1Left, LOW);// Turns the right
digitalWrite (motor1Right, HIGH);// motor forward
analogWrite(enable, 70);
}


}
Nazaj na vrh
Odsoten Poglej uporabnikov profil Pošlji zasebno sporočilo Obišči avtorjevo spletno stran
mkezmah
Član
Član



Pridružen-a: Sre 21 Jan 2009 16:30
Prispevkov: 220
Aktiv.: 1.19
Kraj: Maribor

PrispevekObjavljeno: Tor Jul 02, 2013 12:42 pm    Naslov sporočila:   Odgovori s citatom

OK, tukaj je nekaj neznank:

1. "premeril" si izhod - z arduinotom ali z osciloskopom...?
2. Kakšno vrednost Channel1 ti izpisuje Arduino preko serijskega porta?

na splošno, če uporabljaš tak if stavek raje uporabi:
if
else if
else if

Glede na opisano je videti, kot da Arduino Channel1 vedno prebere kot vrednost pod 1450. Preberi vrednost preko serijskega porta (program ti jo izpiše) in boš že imel en odgovor več.

LP
Marko
Nazaj na vrh
Skrit Poglej uporabnikov profil Pošlji zasebno sporočilo
dejand287
Član
Član



Pridružen-a: Sre 28 Sep 2011 14:56
Prispevkov: 59
Aktiv.: 0.39
Kraj: Duplek

PrispevekObjavljeno: Tor Jul 02, 2013 1:54 pm    Naslov sporočila:   Odgovori s citatom

Pozdravljen,

Izhod sem premeril s pomočjo pickit logic tool. Vrednost, katero dobim izpisano na serial monitor se mi zdi precej čudna saj kljub temu, da je oddajnik v osnovnem stanju, ta vrednost precej niha. Nihajoča vrednost na spodnji povezavi:

http://hopsasa/f/3p/cm/4fUyLJln/prtscr001.png
Nazaj na vrh
Odsoten Poglej uporabnikov profil Pošlji zasebno sporočilo Obišči avtorjevo spletno stran
mkezmah
Član
Član



Pridružen-a: Sre 21 Jan 2009 16:30
Prispevkov: 220
Aktiv.: 1.19
Kraj: Maribor

PrispevekObjavljeno: Tor Jul 02, 2013 2:43 pm    Naslov sporočila:   Odgovori s citatom

No, nekaj več informacij že imamo Smile

Kot prvo moraš vedeti, da tvoj program meril dolžino pulza samo na eno sekundo. Iz prejetih vrednosti je jasno, da je zaznana vrednost v spodnjem območju (razen kakšne anomalije), zato je izhod kot ga dobivaš čisto v skladu s programom.

V programu preberi komentarje, da si moraš if stavke nastaviti glede na lastne vrednosti.

Za določitev lastnih vrednosti pa se boš moral še malo potruditi, preveriti kaj ti zazna Arduino pri obeh skrajnih vrednostih in osnovnem položaju. Poskusi tudi kaj se zgodi, če izvajaš meritve bolj pogosto (zmanjšaj delay(1000))....

Ko boš imel teh nekaj podatkov in izpise pa lahko greš počasi naprej...

LP
Marko
Nazaj na vrh
Skrit Poglej uporabnikov profil Pošlji zasebno sporočilo
dejand287
Član
Član



Pridružen-a: Sre 28 Sep 2011 14:56
Prispevkov: 59
Aktiv.: 0.39
Kraj: Duplek

PrispevekObjavljeno: Tor Jul 02, 2013 3:03 pm    Naslov sporočila:   Odgovori s citatom

Zmanjšal sem zakasnitev na 100ms, vrednosti res niso identične, vendar so glede na prejšnje vrednosti enako razgibane. Ni mi jasno tudi to, ko jas izklopim oddajnik, se še vrednosti kljub temu prikazujejo na Serial monitorju, razen ko odklopim signal iz Arduino-ta. takrat je vrednost 0.

Glede na zgoraj naveden program imam je podano območje v katerem bi se morala kazati neka odzivnost na Arduinu, ta pa je vedno konstantna ˇ1ˇ - (pin5). Predvidevam, da je program napisan smiselno vendar kljub temu ne deluje.
Nazaj na vrh
Odsoten Poglej uporabnikov profil Pošlji zasebno sporočilo Obišči avtorjevo spletno stran
mkezmah
Član
Član



Pridružen-a: Sre 21 Jan 2009 16:30
Prispevkov: 220
Aktiv.: 1.19
Kraj: Maribor

PrispevekObjavljeno: Sre Jul 03, 2013 8:11 am    Naslov sporočila:   Odgovori s citatom

Zakaj bi se morala kazati odzivnost na arduinotu?

Glede na tvoj program bo Arduino za vse, kar je pod 1460 postavil izhod tako, kot ti ga postavlja. In tvoje meritve so praktično vse pod 1460. Torej deluje pravilno.

Torej:
1. oddajnik nastavi čisto levo in si izpiši vrednosti
2. oddajnik nastavi čisto desno in si izpiši vrednosti
3. oddajnik pusti na sredini in izpiši vrednosti
4. ustrezno prilagodi vrednosti v if zanki

jaz bi najprej naredil to, preden se lotim problema "šuma".

LP
Marko
Nazaj na vrh
Skrit Poglej uporabnikov profil Pošlji zasebno sporočilo
dejand287
Član
Član



Pridružen-a: Sre 28 Sep 2011 14:56
Prispevkov: 59
Aktiv.: 0.39
Kraj: Duplek

PrispevekObjavljeno: Sre Jul 03, 2013 1:35 pm    Naslov sporočila:   Odgovori s citatom

Na spodnjih povezavah prilagam izmerjene vrednosti iz Pickit logic tool ter vrednosti dobljene iz arduina. Ne razumem popolnoma zakaj se mi zdijo vrednosti ki jih prikaže arduiino pri vseh položajih dokaj enake, saj se v vsakem stolpcu pojavi nekaj večjih vrednosti.

Povezava do vrednosti izmerjenih s Pickit logic tool:

http://hopsasa/f/1f/107/3lrIYUHH/prtscr006.png


Povezava do vrednosti dobljenih iz arduina. Vrednosti sem meril pri zakasnitvi 1 mikro sekunde:

http://hopsasa/f/47/k1/3HVp95ti/prtscr005.png

Po prikazanih vrednosti merjenih z Pickitom, so vrednosti v programu nastavljene pravilno, po vrednostih, katere poda arduino pa ne vem kako naj razberem pravilno vrednost?
Nazaj na vrh
Odsoten Poglej uporabnikov profil Pošlji zasebno sporočilo Obišči avtorjevo spletno stran
mkezmah
Član
Član



Pridružen-a: Sre 21 Jan 2009 16:30
Prispevkov: 220
Aktiv.: 1.19
Kraj: Maribor

PrispevekObjavljeno: Sre Jul 03, 2013 2:33 pm    Naslov sporočila:   Odgovori s citatom

Na tvojih izhodih Pickit Logic toola vidim, da imaš signal priključen na kanal 3. Domnevam, da je to pin 6, iz manuala je razvidno, da imaš na vhodu 6 Schmitt trigger:
http://ww1.microchip.com/downloads/en/DeviceDoc/PICkit%202%20Logic%20Tool%20User%20Guide.pdf

Kar pomeni, da Pickit zazna high pri višji vhodni napetosti kot bi na pinih 4 in 5 in tudi kot bi zaznal tvoj Arduino. Arduino nima Schmitt trigger vhoda (nisem preverjal) in zazna tudi nižje napetosti. Torej ga lahko sproži šum nižje napetosti, če izhod RC receiverja ni čist. Domnevam, da je tukaj tvoj problem.

Najelegantneje bi bilo, če bi lahko izhod RC receiverja priklopil na osciloskop, oziroma poskusi vsaj na pinih 4 in 5 pickit logic toola - morda se ti bo tudi tam pričelo prej prožiti.

Če se to zgodi, je rešitev npr. Schmitt trigger med RC receiver in vhod arduinota.

LP
Marko
Nazaj na vrh
Skrit Poglej uporabnikov profil Pošlji zasebno sporočilo
dejand287
Član
Član



Pridružen-a: Sre 28 Sep 2011 14:56
Prispevkov: 59
Aktiv.: 0.39
Kraj: Duplek

PrispevekObjavljeno: Sre Jul 03, 2013 3:25 pm    Naslov sporočila:   Odgovori s citatom

Tako meril sem na kanalu 3 to je pin-6 na Pickitu. Na kanalu 1 in 2 mi ne gre zmeriti pulza. Se pravi ostane opcija da preizkusim z Schmitt Trigger-jem?
Nazaj na vrh
Odsoten Poglej uporabnikov profil Pošlji zasebno sporočilo Obišči avtorjevo spletno stran
mkezmah
Član
Član



Pridružen-a: Sre 21 Jan 2009 16:30
Prispevkov: 220
Aktiv.: 1.19
Kraj: Maribor

PrispevekObjavljeno: Čet Jul 04, 2013 7:49 am    Naslov sporočila:   Odgovori s citatom

Najprej poskusi s pull-down uporom, se pravi na vhod Arduinota dodatno veži cca 10k upor proti masi, morda bo to zgladilo špice.

Enostaven poskus, ne bo ti vzel veliko dela. Če to ne gre, pa Schmitt trigger.

LP
Marko
Nazaj na vrh
Skrit Poglej uporabnikov profil Pošlji zasebno sporočilo
dejand287
Član
Član



Pridružen-a: Sre 28 Sep 2011 14:56
Prispevkov: 59
Aktiv.: 0.39
Kraj: Duplek

PrispevekObjavljeno: Čet Jul 04, 2013 11:16 am    Naslov sporočila:   Odgovori s citatom

Spodaj prilagam povezavo:

http://www.youtube.com/watch?v=kV1QFVK5Bp0

Povezano imam Led in servo-motor pri katerem se vidi da prihaja do motenj. Pri poizkusu s Pull down uporom ni bilo uspeha. Poizkusiti še moram s Schmitt triggerjem.
Nazaj na vrh
Odsoten Poglej uporabnikov profil Pošlji zasebno sporočilo Obišči avtorjevo spletno stran
dejand287
Član
Član



Pridružen-a: Sre 28 Sep 2011 14:56
Prispevkov: 59
Aktiv.: 0.39
Kraj: Duplek

PrispevekObjavljeno: Pon Jul 08, 2013 11:59 am    Naslov sporočila:   Odgovori s citatom

Takole, rešil sem težavo in sicer se je pojavljala med oddajno in sprejemno napravo ker ni bilo točno enakega kvarčnega oscilatorja v oddajni in sprejemni napravi je prihajalo do motenj.
Nazaj na vrh
Odsoten Poglej uporabnikov profil Pošlji zasebno sporočilo Obišči avtorjevo spletno stran
dejand287
Član
Član



Pridružen-a: Sre 28 Sep 2011 14:56
Prispevkov: 59
Aktiv.: 0.39
Kraj: Duplek

PrispevekObjavljeno: Čet Jul 25, 2013 4:07 pm    Naslov sporočila:   Odgovori s citatom

Pozdravljeni,

Po nekaj časa sem ugotovil, da bi potreboval PWM izhod glede na zgoraj napisan program. Trudim se, vendar mi ne uspeva kako bi uskladil pulz preko analognega vhoda na arduinu z PWM izhodom.

Ima morda kdo kakšno zamisel?
Nazaj na vrh
Odsoten Poglej uporabnikov profil Pošlji zasebno sporočilo Obišči avtorjevo spletno stran
Pokaži sporočila:   
Objavi novo temo   Odgovori na to temo   Printer-friendly version    www.elektronik.si Seznam forumov -> Elektronika Časovni pas GMT + 2 uri, srednjeevropski - poletni čas
Stran 1 od 1

 
Pojdi na:  
Ne, ne moreš dodajati novih tem v tem forumu
Ne, ne moreš odgovarjati na teme v tem forumu
Ne, ne moreš urejati svojih prispevkov v tem forumu
Ne, ne moreš brisati svojih prispevkov v tem forumu
Ne ne moreš glasovati v anketi v tem forumu
Ne, ne moreš pripeti datotek v tem forumu
Ne, ne moreš povleči datotek v tem forumu

Uptime: 69 dni


Powered by phpBB © 2001, 2005 phpBB Group