Moro,Äly loppui.
Yritän kehitellä ultraääni anturasta toisen laista projektia.
Elikkä anturin lukema olisi vaikka 100cm
Kun painan napista tallentaisi tuon 100cm muuttujaan.
Sitten kun välimatka Lyhenee/pitenee ja näyttäisi vain lukua minkä matkan se on siirtynyt.
Elikkä tuo alku etäisyys olisi vaikka 100cm ja etäisyys kasvaisi/lyheneisi vaikka 50cm.
Lukeman minkä se näyttäs olisi tuo 50cm.
Alkuperäinen luku ei saisi muuttua vaikka etäisyys Lisääntyy tai vähentyisi.
Ainoastaa kun painaisi nappia alkaisi uusi Mittaus.
Nöyrimmät kiitokset jos voisitte autaa .
Tiedote ylläpidolta:
Elektroniikkafoorumi sulkeutuu tietoturva ongelmien takia.
Käyttäjien tietoja (yv:t, sähköpostiosoite ja salasanan hash) on saattanut vuotaa vääriin käsiin.
Foorumi on asettettu vain luku tilaan. Vanhoja keskusteluja voi lukea palvelinsopimuksen päättymiseen asti.
Tietokannasta on poistettu kaikki salasanat, sähköpostiosoitteet ja yksityisviestit.
Jos haluat saada omat yksityisviestisi, lähetä sähköpostia yllapito@elektroniikkafoorumi.com
samasta sähköpostista mikä oli foorumin tiedoissa niin voin kaivella niitä varmuuskopioista.
Mielenkiintoni foorumin ylläpitoon on viime vuosina ollut vähäistä jo muutenkin joten tähän on hyvä lopettaa.
Kiitokset kaikille käyttäjilla ja pahoittelut mahdollisista ongelmista.
Päivitys: Näyttäisi siltä että mahdollinen vuoto koski vanhaa phpBB2 tietokantaa,
joten helmikuuta 2012 uudemmat tiedot pitäisi olla turvassa.
-Lahha
yllapito@elektroniikkafoorumi.com
Arduino
Valvoja: Moderaattorit
13 viestiä
• Sivu 1/1
Viimeksi muokannut kalervo päivämäärä Ma Helmi 27, 2017 8:48, muokattu yhteensä 1 kerran
|
|
Minkälainen ultraäänianturi ?
Onko näyttää softaa, jolla saa mitan näkyviin. Siis normaalin mitan, eikä muutosmittaa. Edit - onko kyseessä tällainen härveli ? http://ihmevekotin.fi/product/299_ultra ... ri-hc-sr04 Suomenkielistä tietoa löytyy kirjastosta: Sulautetut: Opi rakentamaan robotteja ja muita sulautettuja järjestelmiä. Sivu 118-119 Luku 4 - Hyönteisrobotti |
|
HC-SR04 Ultraääni anturi.
Arduinon perus koodi jolla mitataan etäisyyttä kohteseen(seinään). Ei taida nyt oppikirjat auttaa minua tässä ideassa. |
|
dist1= ensimmäinen mittaus
dist2=toinen mittaus deltadist=dist2-dist1 näytä deltadist Tuon koodaat sinne väliin ja tulostat sen mihin ikinä sen datan nyt kuuluukin tulla. Eikös? Ei tuo oppikirjaa tarvitse. Kari Espoo, Finland
|
|
GaryP antoikin jo valmista pseudokoodia.
Jos et vieläkään keksi kuinka tehdä se, niin tarvinnet vähän opiskelua, jotta opit ohjelmoimaan. Siispä siirry putkaan... http://www.ohjelmointiputka.net/oppaat/ ... c_esittaja http://www.ohjelmointiputka.net/oppaat/ ... cpp_ohj_01 Edit - Päivi Hietasen C++ ja Olio-ohjelmointi taitaa ampua vähän yli tarpeistasi (yli 800 sivua), mutta jos sen jaksat kahlata ymmärtäen, niin riittäneen ohjelmoinnin oppimiseen. |
|
Tuossa olisi koko roskaläjä.
#include <NewPing.h> #define TRIGGER_PIN 11 #define ECHO_PIN 12 #define MAX_DISTANCE 400 const int LED = 13; // LED-liitin const int BUTTON = 7; // kytkimen input-liitin int val = 0; // alustetaan val tallentamaan input-liittimen tilatieto int old_val = 0 ; // val-muuttujan edellinen eli vanha arvo int state = 0; // float matka1 = 0; float matka2 = 0; float matka3 = 0; NewPing sonar(TRIGGER_PIN, ECHO_PIN, MAX_DISTANCE); // NewPing setup of pins and maximum distance. void setup() { Serial.begin(9600); pinMode (LED, OUTPUT); // LED output tilaan pinMode (BUTTON, INPUT); // BUTTON } void loop() { delay(50); val = digitalRead(BUTTON); // luetaan input-arvo ja tallennetaan se // tarkistetaan onko jotain muuttunut kytkimen tilassa if((val == HIGH) && (old_val == LOW)) { state = 1 - state; delay(30); // viive millisekunneissa } old_val = val; // val on nyt vanha, joten tallennetaan se if (state == 1) { digitalWrite(LED, HIGH); unsigned int uS = sonar.ping_cm(); float matka1 = (uS);// Tämä kait pitäisi tallentaa //jonnekkin että ei muuttuisi //Muutenkin virhettä pukkaa float matka2 = (matka1); float matka3 = matka2 - matka1(); Serial.print(matka3);// Tämä olisi tarkoitus saada näyttämään // Matkan siirtymän, olkoon matka1 2m siirtymä 30cm Tulos olisi matka3 30cm } else { digitalWrite(LED, LOW); unsigned int uS = sonar.ping_cm(); Serial.print(uS); Serial.println("CM"); } } |
|
Viimeksi muokannut L18 päivämäärä Ma Joulu 19, 2016 16:18, muokattu yhteensä 2 kertaa
|
|
Tästähän se polku alkaa.
Itsellä on vähän tullut taukoa C:n kanssa, kiva kun joku muukin sitä täällä pyörittelee niin saa vähän motivaatiota. Eikä kannata lähteä sille linjalle että kysytään "miksi teit noin", asia ei välttämättä ole ihan vielä hallussa, joten rakentava kritiikki hyvillä paranteluehdotuksilla on tosimiesten tapa auttaa. Tuolla arduinon omalla foorumilla on eräs idiootti jolla on aina tapana lytätä uudet harrastajat, ei toisteta samoja virheitä. Esittelu muuttujat valmiiksi koodin alussa, jatkossa voit siten vaan paukuttaa niille arvoja. Mulla on nyt vähän huonosti ohjeita annettavaksi kun meinaa uni tulla silmään, mutta jospa huomenna ymmärtäisi lukemansa paremmin. Kari Espoo, Finland
|
|
Espoo, Finland
|
|
|
|
Eipä siinä taida mitään erikoista olla, mutta meikäläisen kokemus loppuukin näissä laitteissa siihen.
Mun kokemukseni ovat hyviä, yksinkertaisia ratkaisuja, valmiita kirjastoja, omia oivalluksia jokunen, mutta rajattu teho ja I/O-pinnien määrä ehkä pullonkaulana perus-Atmeleissa. Olisi kiva saada kunnon keskustelua aikaiseksi, ilman ylenkatseita tai kauteutta kun joku muu on jälleen kerran askeleen tai useammankin edellä. Meidän PiPi-ropotti saatiin jollain ihmeen ilveellä joskus rakennettua jonkinsortin valmiuteen, mutta sitten lopahti into ja aika, osaaminen ei riittänytkään enää. L18, voitko tarkentaa, millaisia juttuja sinulla oli mielessä kun kysyit tuota? Kari Espoo, Finland
|
|
|
|
Jaa, tarkoitat siis että kun muuttuja esitellään joka kerta uudestaan "privaatisti"? Ei kai siinä mitään järkeä ole, paitsi jos haluaa että sama muuttujanimi sisältää eri arvon sisäisien kutsujen välillä, joka on varmasti omiaan sotkemaan koodaajan ja koodia seuraavan henkilön ajatukset.
Itse esittelen muuttujia aika vapautuneesti heti ohjelman alussa, luon kaikille oman, lukuunottamatta apumuuttujia, joiden sisältö nollataan aina varmuuden vuoksi funktioiden alussa. Ja nyt kannattaa huomioida että vaikka minulla on ohjelmoijan mieli, en ole silti mikään hyvä esimerkki/taitava, edes uskottava. On niin monta tapaa päästä samoihin oikeisiin lopputuloksiin, epäilen aina uutta koodia tulkitessani omaa älykkyyttäni jos en ymmärrä. Jaottelen koodit aina selkeisiin omiin pikkuruisiin toimintayksiköihin joita kutsun tarvittaessa apuun, On ollut pakko kehitellä omat tavat toimia kun viisi erduinoa keskustelee keskenään I2C-väylän kautta ja yrittävät pysyä synkassa, tehdä omalla vuorollaan omat rutiininsa, antaa palautteen pääpirulle (sirulle), ja jäävät sitten odottelemaan uusia ohjeita. Ja silti mättää vähän väliä. Kun ymmärtäisi paremmin debuggausta, voisi ongelmat ratketa, epäilen monesti kuitenkin sitä kilometrin johtohässäkkää sekä liitoksia informaatiokatkoista. Mutta mikään ei voi olla varmaa. Kari Espoo, Finland
|
|
13 viestiä
• Sivu 1/1
Paikallaolijat
Käyttäjiä lukemassa tätä aluetta: Ei rekisteröityneitä käyttäjiä ja 1 vierailijaa