Keresés

Részletes keresés

ruzsa janos Creative Commons License 2017.11.05 0 0 3218

én biztosan hardverből szüntetném meg a zajt. Jelenleg gyakorlatilag építettél egy antennarendszert, és annak a jelét próbálod digitalizálni.

 

Előzmény: oregsas (3217)
oregsas Creative Commons License 2017.11.05 0 0 3217

Most , hogy írod ezen valóban el kell gondolkodnom . Ha egymásután mérek 20-at és várok egy másodpercet akkor valóban lehet , hogy a görbe egy pontját mérem hússzor. De ha egyenlő időközönként mérek 20 szor és annak veszem az átlagát , akkor a valószínűsége nagyobb , hogy tényleg átlagot mértem. Minden képen megkondizom és átlagolom is. Gondoltam rá ha 1 Kohm NTK és 1 Kohm ellenállással jobban söntölődik a jel , de jobban melegszik is az NTK és többet mutatna. Ha beáll , akkor kalibrálom is . de ez még csak indikálás. Ha részletek összeálltak , biztos kell segítséget kérnem a mentéshez.

Előzmény: ruzsa janos (3215)
oregsas Creative Commons License 2017.11.05 0 0 3216

Amit itt írtam , az még nem a feladat. Ez csak tréning , hogy jól begyakorolni a lépéseket . Én nyugdíjas elektroműszerész vagyok és két hónapja játszom az arduinoval . csak hobbiból foglalkoztam a turbopascallal , amihez voltak nagyon jó magyar nyelvű könyvek . Ott láttam rengeteg példaprogramot . Itt csak a for ciklust akartam gyakorolni. Régebben csináltam is AT számítógépre A/D átalakítót 3 csatornára 16 bites felbontásra . Nagyon szépen működött és el tudtam menteni  „csv” fájlba . Most két hónapja kaptam 2 db arduino uno.-t és jól eljátszom vele a konyhában . Az asztali számítógépes nagyon terjedelmes volt és nem fértem el a konyhában.

A TAVIR távoktatásának a felénél járok és szoktam nézni a YouTube.-n . Mindig kicsit átalakítom a programot és így gyakorlok.

Megcsináltam az ultrahangos távolságmérőt és a DHT11 –el a hőmérséklet és páratartalommérőt. Az távolságmérő az nagyon jó , de a DHT11 nagyon pontatlan .

Amit itt a képen láttok , ez csak egy pikk-pakk próba .volt 5 db NTK és 5 db ellenállásom. Minden 100 Kohmos. A vezetékek nem árnyékoltak és nem is sodrottak. Szkópom az van kettő is , de gondoltam én is , hogy zajos lesz , de nem ennyire. Még szkóppal nem néztem .

 

A padláson csináltam :

   -   kék vonal 400-nál padlás hőmérséklete, itt nincs vezeték

   -   piros a szobába belógattam az ajtórésen át

   -   lila alul, kilógatott vezeték az udvarra 6-7 méter itt szakadás lehetett ezt ne vegyük figyelembe

   -   zöld  a cirkó előremenő vezetéke

   -   sárga a cirkó visszatérő vezetéke

Este bekapcsoltam és 200 másodpercenként vette a jeleket másnap délelőttig , sűrűbbre nem vehetem , mert 500 lépés után betelik a képernyő.

Ide kellene 1-2 mikrofarádos kondi. Még vennem kell .

A kék vonal a padlás hőmérsékletén elég jól követhető a tendencia , látszik hogy éjszaka hűlt a levegő .

Reggel és délelőtt négyszer kapcsolt a cirkó .A cirkó csövére csak rá van szigszalagozva az NTK .

A mintavételezési időt későbbiekben  szeretném kb 30 másodpercre csökkenteni, de ehhez majd meg kell oldani a csv fájlba mentést vagy memóriakártyára. Ehhez még Hajnalka vagyok.

Most lefuttatom a programot és ezt kapom  :

 

 

Nekem úgy tűnik , nem ugrik ki a ciklusból , a " forgo " nak minden ciklus után kellene 1-el nőnie.

a ""  szám " nak pedig -  1  2  3  4  5  6  7  8  9  10  1  2  3  4  5  6  7  8  9  10  1  2   3  stb -  .

Olyan , mintha kihagyná a nullázó procedurát .

Még kicsit próbálgatom , de nem bánnám ,ha még visszatérnénk rá .

 

Előzmény: tibi-d (3214)
ruzsa janos Creative Commons License 2017.11.05 0 0 3215

leírnád, hogy pontosan milyen időközönként szeretnéd megjeleníteni a végeredményt? Hőmérsékletről lévén szó, az biztosan nem változik túl gyorsan.

 

Illetve, hogy milyen frekvenciával zajos az a jel? Szkópon nézted már? Ha a jelzajt szeretnéd kiszűrni, akkor ott - legalábbis én úgy gondolom - nagyon is fontos lenne a mintavételezés és a zajfrekvencia összehangolása (mondjuk a zaj egyetlen feltételezett periódusára jusson vagy 20 mérés , másként ha véletlenül azonos frekvenciával történnek, előfordulhat, hogy pl csak a csúcsértékeket átlagolod. 

 

Előzmény: oregsas (3212)
tibi-d Creative Commons License 2017.11.05 0 0 3214

Szia!

Az összegek tárolására elég e az int számtartománya, mert ha túlcsordúl, lehet galiba. Az if összehasonlító jele a (==) és nem a (=), ez értékadás. Az átlagot nem lenne célszerűbb a for cikluson kívül kiszámolni, mikor a teljes összeg rendelkezésre áll? A program igen rondán van tördelve, ember legyen a talpán aki kiigazodik rajta.

Előzmény: oregsas (3212)
mardal84 Creative Commons License 2017.11.04 0 0 3213

Sziasztok

 

tud-e nekem valaki segíteni,építettem egy buttonboxot szimulátorhoz egy arduino leonardoval, már egy előre megírt programot tölöttem fel rá de sajnos nem igazán műküdik, egy két gombot érzékel,valamelyiket nem és valamelyiket ha megnyomom akkor úgy érzékeli mintha többet nyomnék egyszerre,esetleg ha valaki tud segíteni akkor privátban a többit meg tudjuk beszélni hogy ne a fórumot írjuk teli.

oregsas Creative Commons License 2017.11.04 0 0 3212

Mi lehet a hiba ?

ARDUINO  program     :   1.0.1  

alaplap                       :   UNO

Amit szeretnék  : hőmérsékletet regisztrálni , de úgy , hogy 10- 20 mérés átlagát venném mert hosszú és zajos a vezeték. Ehhez egyik lépés a mérések átlagolása .

Csináltam két programot , de egyik sem jó . Sajnos angolul nem tudok , de sokáig tanultam maszekosan a turbopascalt , valamit ez segített.

Magát a hőmérsékletet már regisztráltam " csak a soros monitoron és 1.8.5 programon plotteren " : 100Kohm NTK és 100Kohm ellenállás osztóját mérem az anológ bemeneten.Működik , de nagyon zajos . tehetek rá hidegítőkondit is .

Itt most csak az átlagolást próbálom , ehhez elég az alaplap.

 

               EZ A PROGRAM LEFUT , DE NEM JÓL !

.-.-.-.-.-.-.---.-.-.-.-.-.-.-.-

 

/* Ez most itt egy reszfeledat , amivel elakadtam  */
int forgo              ()     ;   // globalis valtozo , hanyszor fordult korbe a teljes forciklus
int szam               ()     ;   // ez nem kellene , hogy globalis legyen
int szam_gongyolve     ()     ;   // cikluson belül : szamokgongyolve + szam  --  ez nem kellene , hogy globalis legyen
float atlag            ()     ;   // szamokgongyolve / c    --- ez jobb ha globalis , mert for cikkuson kivul is hasznalnam    

void setup   ()  {
  Serial.begin (9600 )        ;
  int forgo       =  0        ;   //  bebiztositom , hogy feltetlenul nullarol induljon szamlalo
}
               /* arra gondoltam minden egyes forciklus elott biztonsaggal nullarol induljon a szam es a szamgongyolve valtozo , kiveve a forgo.-t
                  mert az erdekel a teljes forciklus hanyszor futott le  */
void  nullazo   ()   {
  int szamgongyolve     =   0  ;
  int szam              =   0  ;
 
}
               /* itt tortenikk az atlagolas    */
void   magresz  ()  {
    for(int ciklus = 1 ; ciklus = 10 ;  ciklus++  )    {
       int szam  = szam  + 1 ;
       int forgo = forgo + 1 ;
       int szamgongyolve = szamgongyolve + szam   ;
       float atlag       = szamgongyolve / ciklus ;
                /*  kiiratas soros monitorra  */
 Serial.print           ("forgo ")            ;
 Serial.print           (forgo )              ;
 Serial.print           ("   szam     ")      ;
 Serial.print           (szam)                ;
 Serial.print           (" szamgongyolve  ")  ;
 Serial.print           (szamgongyolve     )  ;
 Serial.println (" ") ;
 Serial.println (" ") ;        }     }
 

               /*  foprogram a procedurakkal   */
 void loop () {
  nullazo            ()   ;
  magresz            ()   ;
  delay ( 2000 ) ;
}

.-.-.-.-.-.-.-.-.-.-.----.

- először minden változót dekraláltam , hogy globális legyen a programban

- voit setup.-ban minden változót újra lenulláztam

- a forciklus szerintem jól megy

- a  "szamgongyolve" folyton növekszik, pedig annak minden 10. lépésben le kellene nullázódnia

- nem vette figyelembe a 2 másodperces késleltetést sem

- forgó változó az jó volt

EZT SZERETTEM VOLNA :

méres    /  aktuális ciklus

előző mérés + új mérés  / aktuális ciklus      = átlag

for ciklus végén lenulláznám a változókat

a forciklus körülfordulásainak számát a forgó változó számlálja , ezt nem nulláznám

Nekem úgy tűnik mintha ki sem lépne a ciklusból, és nem is lépne be a nullázó procedurába.

 

--.-.-.-.-.-.-.-.-.-.-.-.-.-.

                          MÁSODIK FELADAT  ÖSSZEHASONLÍTÓ UTASÍTÁSSAL

 

ebben a programban próbáltam egy "  IF  ".-es utasítást, még csak le sem fordította , szintaktikai hibát jelzett.

 

/* Ez most itt egy reszfeledat , amivel elakadtam
   kerdes 2_feladatot nem forditja le , szintaktikai hibat jelez */
int forgo              ()     ;   // globalis valtozo , hanyszor fordult korbe a teljes forciklus
int szam               ()     ;   // ez nem kellene , hogy globalis legyen
int szam_gongyolve     ()     ;   // cikluson belül : szamokgongyolve + szam  --  ez nem kellene , hogy globalis legyen
float atlag            ()     ;   // szamokgongyolve / c    --- ez jobb ha globalis , mert for cikkuson kivul is hasznalnam    

void setup   ()  {
  Serial.begin (9600 )        ;
  int forgo       =  0        ;   //  bebiztositom , hogy feltetlenul nullarol induljon szamlalo
}
               /* arra gondoltam minden egyes forciklus elott biztonsaggal nullarol induljon a szam es a szamgongyolve valtozo , kiveve a forgo.-t
                  mert az erdekel a teljes forciklus hanyszor futott le  */
void  nullazo   ()   {
  int szamgongyolve     =   0  ;
  int szam              =   0  ;
 
}
               /* itt tortenikk az atlagolas    */
void   magresz  ()  {
    for(int ciklus = 1 ; ciklus = 10 ;  ciklus++  )    {
       int szam  = szam  + 1 ;
       int forgo = forgo + 1 ;
       int szamgongyolve = szamgongyolve + szam   ;
       float atlag       = szamgongyolve / ciklus ;
                /*  kiiratas soros monitorra  */
 Serial.print           ("forgo ")            ;
 Serial.print           (forgo )              ;
 Serial.print           ("   szam     ")      ;
 Serial.print           (szam)                ;
 Serial.print           (" szamgongyolve  ")  ;
 Serial.print           (szamgongyolve     )  ;
 Serial.println (" ") ;
 Serial.println (" ") ;        }     }
 
 
              /*  az osszehasonlitas nem mindig mukodik , itt is a globalis es lokalis valtozok hibajara gondolok   */
 void osszehasonlito       ()  {
   if (szam = 10 )      {
     Serial.println  ("     ") ;
     Serial.println  ("     ") ;
     Serial.print    ("ATLAG") ;  
     Serial.println  (atlag )  ;
     delay (10000)             ;
 }   }
 
 
 
               /*  foprogram a procedurakkal   */
 void loop () {
  nullazo            ()   ;
  magresz            ()   ;
  osszehasonlito     ()   ;
  delay ( 2000 ) ;
}

 

-.-.-.-.-----.-.-.--.-.-..-.-.-.-.-.-.-.-

Amatőr vagyok !!  Hogy csináljátok a NASA.-nál azt nem tudom követni.

Turboban volt a globális és lokális változó , én erre gyanakszom. talán itt hibázok.

ruzsa janos Creative Commons License 2017.11.04 0 0 3211

OLED, még mindig

átrágtam magam az adatlapon. megnéztem egy rakás más programot is, amit erre írtak. 

írtam valami nagyon egyszerűt rá, fény kikapcs-bekapcs, meg feltöltés 0 és 1 bitekkel. Villog, de az adatokat nem kezeli, meg nem világít rendesen, pedig a kontraszt-érték állítása elég egyértelmű.

Rátettem egy szkópot, gyönyörűen látszanak a bitek, ez egy PICO, vissza is tudja fejteni az I2C busz adatait - azt látja ő is, amit küldök, a jelek nem is zajosak.

Na és akkor véletlenül levettem a Vcc vezetéket - és pontosan ugyanúgy (ugyanolyan rosszul)  működött tovább. GND nélkül nem, SDA vagy SCL nélkül viszont működik, de másképp :)

Lehet, hogy egyszerűen rossz ez a kijelző?!?  

ruzsa janos Creative Commons License 2017.10.30 0 0 3210

megnézted az adatlapot? legalább nyugtass meg, hogy nem teljesen hülye vagyok, csak tapasztalatlan...

 

Előzmény: Prof (3209)
Prof Creative Commons License 2017.10.30 0 0 3209

Szia,

Nos... Ez is egy megközelítés. Abstract van, ez maximum arra jó, hogy el tudd tönteni egy oldal alapján, hogy érdemes-e a maradék 2-2000 oldalt végigtúrni vagy sem. Egy MCU-nál esetleg ez hasznos lehet, egy tisztességesen összerakott kijelző dokumentációnál kb. 16-20 oldal az, amin tényleg MINDEN le van írva.

Sok hobbista (és néhány profi is) belefut abba, hogy nem igazán támogatott eszközt vesz, viszont jó olcsón. Én is elkövettem már ezt a hibát nem egyszer, és mindannyiszor az lett a következménye, hogy félredobtam vagy tényleg kihajítottam és inkább más/bevált/drágább/jobban dokumentált eszközt vetettem be (nem biztos, hogy mindegyik teljesült). Az SSD1306 a maga nemében egy filléres kínai tucattermék, az adatlapja tök irreleváns, mert minden létező fejlesztői környezetre portoltak már hozzá normális grafikus könyvtárat. Az, hogy a te "90 százalékban jó" környezetedhez nem -- ez van. A 10 százalék jött be. Megírni egyébként tényleg nem lenne sok, ha nem lenne ENNYIRE elbaszott az adatlapja. (Azt egyébként változatlanul tartom, hogy az absztrakt nem a legfontosabb része az adatlapnak.)

Előzmény: ruzsa janos (3207)
Törölt nick Creative Commons License 2017.10.30 0 0 3208

Köszi !!

Előzmény: Vargham (3206)
ruzsa janos Creative Commons License 2017.10.30 0 0 3207

Ezzel kicsit vitatkoznék. Bármit publikálsz (egyébként általában összes többi adatlapon is) van egy összefoglaló az elején, amolyan "abstract", majd kibontva az egyes fejezetek stb, adott esetben példákkal. Erről a konkrét lapról más is írta, hogy kaotikus. 

Korábban már írtam, egy http://www.oshonsoft.com/ oldalom megtalálható környezetben, ami ugyan egy szimulátort IS tartalmaz, de alapvetően egy egyszerűen használható basic-szerű program. na igen, amíg ki nem derül, hogy egyes dolgok már nincsenek meg benne. Most akkor lehet azt mondani, hogy akkor miért nem valami más, a válasz egyszerű, mert az esetek 90 százalékában megfelel.

Egyébként, visszatérve az OLED alapú kijelzőre: nekem ezen is csak minimális funkcióra lenne szükségem, adott koordinátára letenni egy grafikus jelet, szöveget, ehhez meg azért meg tudom(-nám) írni azt a négy szubrutint - de már hajlok arra, esetleg éppen azzal az egy Arduino Nano panellel lesz a baj, amit használok. Főként most, hogy sikerült megfejtenem, hogy az adtlap írója mire gondol, amikor valami teljesen mást mond :)

Nézd, én soha nem raktam ki bűvös kockát, ezt megfejteni kábé ugyanannyira értelmes dolog (semennyire). De legalább mozognak a neuronok közben.  

Előzmény: Prof (3204)
Vargham Creative Commons License 2017.10.30 0 0 3206

Igen.

Előzmény: Törölt nick (3205)
Törölt nick Creative Commons License 2017.10.30 0 0 3205

Sziasztok ! Segítséget szeretnek kérni, mert nem értek hozzá. Van egy dobmodulom, mely Arduino nano v3- ból készült.Ezt usb- n kereszül laptoppal hajtom.A kédesem az, hogy a tápellátást meg szabad- e oldani usb- s telefontöltővel ( hogy kiiktathassam a laptopot)

Prof Creative Commons License 2017.10.28 0 0 3204

Szia,

Egy műszaki adatlapban olyan, hogy "legfontosabb rész", nem nagyon létezik (esetleg passzív alkatrészeknél vagy erősítőknél az "abszolút maximális értékek"). Külön könyvtárat írni egy kijelzőhöz még én sem állnék neki, ehhez nem kis mazochizmus kellene. Pláne, ha az erőforrás-felhasználás is szempont.

A megjegyzést azért írtam, hogy a vásárlók esetleg ne lepődjenek meg, hogy nem azt kapják, amit itt olvastak (a banggoodos terméklap majdnem jó, ott legalább szerepel az oled is).
Milyen környezetben fejlesztez Arduinora? Azért kérdem, mert a vezérlőjéhez (SSD1306) eddig szinte minden fejlesztőkörnyezetben találtam könyvtárat.

Előzmény: ruzsa janos (3202)
Brandyman Creative Commons License 2017.10.28 0 0 3203

LM35DZ ismét! :-) 

 

Nos, rendeltem új LM35DZ-ket, hivatalosat, nem csiszoltat :-) 

 

Simán bekötöttem az Uno-ba, semmi ellenállás, semmi kondi. 

 

És lőn, a csoda megtörtént! 

(Ne vegyetek Ebay-en LM35-öt :-))

 

Az érték ugyan kicsit amgasabb, mint amit a szobahőmérő mér, de ez már csak kompenzáció kérdése. 

 

ruzsa janos Creative Commons License 2017.10.28 0 0 3202

jogos, de az én szempontomból most tökmindegy. az arduino könyvtárat nem akarom használni, a vezérlőchip leírása meg pontosan annyira idióta módon van megfogalmazva, ahogy tényleg csak a számítástechnikusok képesek kommunikálni. lehet hogy bennem van a hiba, de soha nem tudtam felfogni, hogy miért nem lehet egy szöveget úgy strukturálni, hogy a fontos dolgokat emeljék ki belőle.

tényleg, ha van egy egyszerűen érthető összefoglalód a parancskészletéről, inicializáslásról, örülnék neki.

 

odáig eljutottam, hogy fogad parancsot meg adatot, de továbbra sem lopta be magát a szívembe. 

Előzmény: Prof (3201)
Prof Creative Commons License 2017.10.27 0 0 3201

Ez oled, nem lcd.

Előzmény: ruzsa janos (3199)
frankiboy Creative Commons License 2017.10.27 0 0 3200

szia János...kell a kijelző...átvenném,pont jó lenne,elöbb utóbb felhasználom.emailem publikus...

Előzmény: ruzsa janos (3199)
ruzsa janos Creative Commons License 2017.10.26 0 0 3199

Kell esetleg valakinek egy I2C buszos kis 128x32 pixeles grafikus LCD modul?

Magamnak rendeltem, de mivel én nem az arduino programot használom, amiben van hozzá könyvtár, túl nagy luxus lenne, hogy napokat elvacakoljak vele, mire megtanulom programozni. 950 forintért rendeltem, de látom az ebayen 750, úgyhogy annyiért odaadnám.  

 

https://www.banggood.com/0_91-Inch-128x32-IIC-I2C-Blue-OLED-LCD-Display-DIY-Oled-Module-SSD1306-Driver-IC-DC-3_3V-5V-p-1140506.html?rmmds=search

janitoth Creative Commons License 2017.10.26 0 0 3198

Sziasztok!

Kéne némi segítség. vettem egy Salus 620-as vezeték nélküli szobatermosztátot az ebayről. Az aukcióban úgy látszott,hogy vevő is van hozzá,de nincs. Sebaj gondoltam épitek egyet hozzá. Vettem is egy SI4432-es 868Mhz-es panelt,egy arduino pro minit és egy szingli relépanelt. Gondoltam lelek kapcsolási rajzot hozzá a neten,de nem sikerült.És itt kéne a segítség, a SI4432 panel mely kivezetéseit kell az arduinóhoz kötni,hogy vevő legyen a dologból?

Esetleg,ha valaki foglalkozott már ilyennel és kódja is lenne hozzá, megmentene ha elküldené.

Köszi előre is a támogatást. Jani

ruzsa janos Creative Commons License 2017.10.24 0 0 3197

https://www.banggood.com/HX711-Weighing-Pressure-Sensor-24-Bit-Precision-AD-Module-For-Arduino-p-918228.html

ez egy hídkapcsolás-táp és kiértékelő áramkör. Ezt kiolvasod egy arduino akármivel, aztán az eredmény alapján sípol vagy amit akarsz. A csőre meg felragasztasz egy (több) nyúlásmérő bélyeget.

Előzmény: Harcipocok84 (3196)
Harcipocok84 Creative Commons License 2017.10.24 0 0 3196

Sziasztok!

Szerintetek milyen modullal tudnám megoldani az alábbi feladatot:

Adott egy vékony cső. Az egyik vége fix, a másik el tud hajolni, és jeleznie kellene egy speakernek ha elhajol egy picit is. Mobilis eszköznek kell lennie.
Nincs esetleg olyan érzékelő, ami elhajlást mér?

Törölt nick Creative Commons License 2017.10.24 0 0 3195

Így, így megyen ez....

Nekem az tetszik a programok hiba jelzésében, hogy jelzi: hiányzik egy ˇ,ˇ az adott helyen. Nem tenné esetleg oda.

 

Előzmény: oregsas (3194)
oregsas Creative Commons License 2017.10.23 0 0 3194

Megoldódott. Kb 10 órát szótáraztam, és ott hibáztam , hogy nem jól kezeltem a függvény könyvtárt.

 

És a páratartalom mérésénél volt egy hibám :

float h 7 DHT.humadity;               // megkapjuk a páratartalom értéket

helyesen

float h = DHT humidity;

 idáig a fordító el sem jutott.

Most már tudom , hogy a   " libraries " mappába másolom a speciális függvényeket és csak be kell importálnom a programba.

Előzmény: oregsas (3193)
oregsas Creative Commons License 2017.10.22 0 0 3193

Segítséget kérek !

A két első prgramot, úgy koppintottam le a videókról .

 Arduino 1.8.3 keretrendszerem van . van két programom , ami külön – külön lefut.

Majd a kettőt egybeírtam és nem hajlandó lefordítani.

 

                                                 Itt a hibajelzés.

Nem használt . C: Program Files Arduinolibraries DHTlib exit status 1

Hiba az Arduino/Genunio Uno alaplapra fordításra

 

 

Első : ultrahangos távolságmérő , ami kiírja a távolságot lcd kijelzőre és van egy potenciométerrel állítható billenéspontja , ez egy komparátor .

  

  /* lcd kijelző kombinálása az UH távmérővel és potival   HY-SRF 05 vagy HC-SR04*/
                                                                              /*    FELSOROLÁS  */
const int trigPin          =  9 ;            // trigerjel a 9. lábon
const int echoPin          = 10 ;            // visszhang a 10. lábon
long      duration              ;            // tartam   = időtartam
int       distanceCm            ;            // távolság centimeterben
int       sensorValue0  ()      ;            // potenciometer értéke , amihez hasonlítok
float     sensorValue1  ()      ;            // potenciometert osztottam 5-el így rövidebb lett a potiérték      
#include <LiquidCrystal.h>                   // include   = tartalmaz  rámutatunk az "lcd h fájlra "
LiquidCrystal lcd(12, 11, 5, 4, 3, 2) ;      // definiáljuk a h fájlnak melyik lábakat figyelje

                                                                             /*      DEKLARÁCIÓ  */
void setup() {
  pinMode (trigPin  , OUTPUT ) ;             // trigerjel az csak kimenet lehet
  pinMode (echoPin  ,  INPUT ) ;             // visszhangjel csak bemenet lehet
  pinMode (     13  , OUTPUT ) ;             // ez csak a LEDPIN ha túl közelre vagyunk
  Serial.begin   (9600)        ;             // ha plotterezni is akarok
  lcd.begin(16, 2);                          // kioktatjuk az oszlopok és sorok számáról
  lcd.clear ();  }                           // töröljük a kijelzőt

void loop() {                                                                /*    PROGRAM    HUROK   */
  int sensorValue0 = analogRead(A0);      // itt olvassa be a potit  itt az alapjel
  float sensorValue1 = sensorValue0 / 5 ; // aztán elosztom a potijelet , hogy kisebb tartományt kapjak
  digitalWrite (trigPin ,  LOW)  ;        // trigerjelet leállítom
  delayMicroseconds        (2 )  ;        // várok 2 mikroszekundumot
  digitalWrite (trigPin , HIGH)  ;        // kezdem a trigerjelet adni
  delayMicroseconds       (10 )  ;        // várok 10 mikroszekundumot   
  digitalWrite  (trigPin ,  LOW)  ;       // leállítom a trigerjelet
 
  duration = pulseIn (echoPin , HIGH)  ;  // távolság vége ECHO láb magasra vált  
  distanceCm = duration * 0.034 / 2    ;  // számolás hangsebesség /2
  if (sensorValue1 > distanceCm )         // ha távolság kissebb , akkor LEDPIN gyullad
{ digitalWrite (13 , HIGH ) ; }           // ha távolság kissebb , akkor LEDPIN gyullad
    else                   
{ digitalWrite  (13 ,  LOW) ; }           // kerülőág  

                          /*        MONITORRA ÍRÁS          */
  Serial.print ("távolság:  "  )     ;
  Serial.print (distanceCm)          ;
  Serial.print ("    "  )            ;
  Serial.print ("  cm  "  )          ;
  Serial.print ( "   ")              ;
  Serial.print ("  potiállás osztva");
  Serial.print ("        ")          ;   
  Serial.println (sensorValue1 )     ;
                          /*        LCD KIÍRÁS             */
 lcd.clear ();                               // kijelző törlése
 lcd.print("tavolsag    ")           ;       // string kiíratása , mint a turboban
 lcd.print( distanceCm )             ;       // távolság kiíratása
 lcd.setCursor (0,1)                 ;       // alsósorra ugrok
 lcd.print("billenopont ")           ;       // poti poziciója itt villan a LEDPIN
 lcd.print(sensorValue1   )          ;       // poti poziciója itt villan a LEDPIN

 delay(500)                          ;   }   // ciklusidő  

Második:  hőfok és páratartalom mérés DHT11 –el. Ez már nem volt hajlandó működni .

Lemásoltam az Arduino_master könytárat, állítólag ez nagyon univerzális és benne van a DHT11 is.

Következő lépésben kitöröltem a a páratartalom sorokat és így már hajlandó volt lefordítani csak a hőmérés részét, ami működik is . kiírja a soros monitorra a hőmérsékletet. A felbontása 1 C-fok. Ha átírtam float-ra akkor is maradt az 1 C-fok.

 

 

 

/* hőmérő első próba ARDUINO LABOR #10
 *  hőmérséklet és páratartalom mérés
 *  4 lábú DHT-11.-el , ez csak monitoros
 *  KÖNYVTÁR
 *  https://translate.google.hu/translate?hl=hu&sl=en&u=https://arduino-info.wikispaces.com/DHT11-Humidity-TempSensor&prev=search
 */
 #include <dht.h>   // azt hiszem , hogy ez a hőmérő könyvtár
 #define dataPin 9  // ez a jelvezeték DHT-11 kimenete
 dht DHT ;          // létrehozzuk a DHT szenzorunkat
 void setup() {
 Serial.begin (9600);
}

void loop() {
  int readData = DHT.read11(dataPin);   // data érték kiolvasása a szenzorból
  float t = DHT.temperature;            // megkapjuk a hőmérséklet értéket
  float h 7 DHT.humadity;               // megkapjuk a páratartalom értéket
          // EZ MÁR CSAK KÍRATÁS
  Serial.print (" hőmérséklet  =     ");
  Serial.print (t);          
  Serial.print ("C      páratartalom        =     ");
  Serial.print (t);                     // kényszerből ez is hőmérséklet
  Serial.println ("      %     ");
  delay (2000);

 

 

Itt mutatom az összegyúrtat, amit nem fordít le.

Az volt a célom , hogy mérje a hőmérsékletet DHT11 – el és szintén a hőmérsékletet analóg módon , az  (A1) analógbemenetre kötöttem egy 100Kohm NTK ellenállást egy 100 Kohmos sima ellenállással. A közepén akartam mérni a változást. Majd szerettem volna kiíratni lcd-re és soros monitorra egyaránt. ITT KAPTAM A FENT EMLÍTETT HIBAJELET.

 

/* hőmérő első próba ARDUINO LABOR #10
 *  páratartalommérés nem megy  +  analóg 100+ 100 Kohm és lcd kijelző
 *  4 lábú DHT-11.-el , ez csak monitoros
 *  KÖNYVTÁR
 *  https://translate.google.hu/translate?hl=hu&sl=en&u=https://arduino-info.wikispaces.com/DHT11-Humidity-TempSensor&prev=search
 */
 
 #include <dht.h>   // azt hiszem , hogy ez a hőmérő könyvtár
 #define dataPin 9  // ez a jelvezeték DHT-11 kimenete
 #include <LiquidChrystal.h>   // rámutatunk az lcd könyvtárra
 LiquidCrystal lcd(12, 11, 5, 4, 3, 2) ;      // definiáljuk a h fájlnak melyik lábakat figyelje#include <LiquidChrystal.h>   
 dht DHT ;          // létrehozzuk a DHT szenzorunkat
 int       sensorValue1  ()      ;            // NTK osztó
 float     hofok_an      ()      ;            // amit a kijelzőn látok analóg értéknek
 
 void setup() {
 Serial.begin (9600);
 lcd.begin(16, 2);                            // kioktatjuk az oszlopok és sorok számáról
 lcd.clear ();  
}

void loop() {
  float readData = DHT.read11(dataPin);            // data érték kiolvasása a szenzorból
  float t = DHT.temperature;                       // megkapjuk a hőmérséklet értéket
  int sensorValue1 = analogRead(A1);               // itt olvassa be az NTK jelét
  float hofok_an   = sensorValue1 /5        ;      // amit a kijelzőn látok analóg értéknek
 
          // EZ MÁR CSAK KÍRATÁS MONITORRA
  Serial.print (" hőmérséklet DHT11 =     ");
  Serial.print (t);          
  Serial.print ("C        ***   hőmérséklet, analóg        =     ");
  Serial.print (hofok_an);
  Serial.println ("   ");
           // EZ MÁR CSAK KÍRATÁS LCD KIJELZŐRE
 lcd.clear ();                                         // kijelző törlése
 lcd.print("hofok DHT11 ")           ;       // string kiíratása , mint a turboban
 lcd.print( t)             ;                           // hőmérséklet DHT11 kiíratása
 lcd.setCursor (0,1)                 ;           // alsósorra ugrok
 lcd.print("hofok anal  ")           ;          //  strin kiírása
 lcd.print(hofok_an  )          ;                //    hőmérséklet analóg kiírása       
    delay (2000);

 

Szerintem ezek nem hosszú és bonyolult programok, és szintaktikai hibát nem találok benne.

Sajnos angolul nem tudok, de turbopascal-lal hobbi szinten sokat játszottam. 

a keretrendszert a Program FileArduino - ba telepítettem.

Az Arduino_master könytárat,pedig    "Ezekk özött van a DHTlib könytár is " C:Program FileArduinolibraries  könyvtárba.

Programjaim pedig : C:Document and SettingvakpaliDokumentumokArduino könyvtárban vannak.

Mit ronthattam el.

Ha itt a hiba légyszi küldjétek el melyik könyvtáram hiányzik, és pontosan hava másoljam .

Lehetőleg egyszerűen , elég Hajnalka vagyok a témában!

ruzsa janos Creative Commons License 2017.10.22 0 0 3192

https://circuits4you.com/2016/05/13/sound-level-measurement-arduino/

https://blog.yavilevich.com/2016/08/arduino-sound-level-meter-and-spectrum-analyzer/

ez maga a hangerőmérő-modul - ezen értem, hogy 

Third, you can also adjust the speed of the ADC. By default the ADC is running at 1:128 of the MCU speed (mode #7). Each sample takes the ADC about 13 clock cycles to get processed. So by default we get 16Mhz/128/13=9846Hz sampling. If we want to sample at double the rate we can change the divider to be 64 instead.

Végüla programban a clock/32-es ADC órajelet javasolja, akkor az ADC konverzió 38,4 kHz-en történik - és ezzel kb egy 300 Hz-nek megfelelő periódusidejű kis ciklust fog egymás után beolbvasni (128 darab mérés), majd az amplitúdókból RMS átlagot számolni.

 

Szóval nekem a te általad linkelt programból ez hiányzik.

Előzmény: lewy_ (3186)
ruzsa janos Creative Commons License 2017.10.22 0 0 3191

na? valaki?

Előzmény: ruzsa janos (3190)
ruzsa janos Creative Commons License 2017.10.19 0 0 3190

valaki magyarázza már el, hogy a mikrofon-modul felerősített váltófeszültségű jeléből hogyan lesz az A/D konverterrel értékelhető jelszint??

Ez a modul elvileg a Vcc/2 értékű (fél tápfeszültség körül változó jelet hoz létre. Én erre azt gondolnám, hogy a kimenő jelet egyenirányítani kellene, majd rátenni egy integráló tagot, mondjuk egy ellenállást egy kondival, amin kialakulnak egy, a jel amplitúdójával arányos egyenfeszültség, amit aztán tovább lehet mérni az A/D konverterrel. A leírásban erről szó sincs. Akkor  meg?. 

Előzmény: lewy_ (3186)
ruzsa janos Creative Commons License 2017.10.19 0 0 3189

ezt a feladatot bármivel meg lehetne oldani, mert ha jól gondolom, az arduino végez egy A/D konverziót, és kiteszi az eredményt a LED-es kijelzőre. a  azért mondtam a Nanot, mert az a legolcsóbb. Igen, egy  adó egy vevő. Tulajdonképpen egy sima soros kommunikáció kellene a kettő közé, rámodulaálva a 433 MHz-ra. Lehet ezt variálni, hogy nem csak az adatot küdöd, hanem előtte egy azonosítót, stb stb. 

Előzmény: lewy_ (3188)

Ha kedveled azért, ha nem azért nyomj egy lájkot a Fórumért!