Hirdetés

2024. április 28., vasárnap

Gyorskeresés

Téma összefoglaló

Téma összefoglaló

  • Utoljára frissítve: 2023-03-11 00:46:52

LOGOUT.hu

Arduino hardverrel és szoftverrel foglakozó téma. Minden mikrovezérlő ami arduinoval programozható, és minden arduino program, board, és hardverrel kapcsolatos kérdések helye.

Összefoglaló kinyitása ▼

Hozzászólások

(#2651) fpeter84 válasza Danex (#2650) üzenetére


fpeter84
senior tag

A relé tekercsében hajlamos olyan feszültségimpulzus generálódni, ami kiütheti a felvezetőket maga körül - jelen esetben az arduino-t. A dióda ezt képes elnyelni, nélküle kockázatos a dolog, relé függő hogy melyik mekkorát hajlamos "rúgni"... Magyarán jobb ha nem hagyod el...

Milyen PIR-t használsz? Kész modult valamilyen kimenettel? Műverősítő(k)ből van összerakva a kapcsolás vagy BIS0001 ? Ha utóbbi, akkor azok a modulok elég furcsán viselkedtek nekem eddig - randomnak tűnt az érzékenység, az hogy mennyi ideig marad behúzva, stb - szóval alaposan próbáld ki előre "tesztpadon", pl egy leddel hogy hogyan viselkedik...

Pár méter vezeték nem okozhat gondot 5V tápfesz mellett...

(#2652) Danex válasza fpeter84 (#2651) üzenetére


Danex
addikt

Ez a PIR[link]

Ez a relé [link]

Relén látok diódát, gondolom az ez lenne, vagy még így is ajánlott még egyet beépíteni? Persze kipróbálom őket előtte, remélem jók lesznek mert más ötletem nincs mivel lehetne pótolni.

(#2653) tvamos válasza Danex (#2652) üzenetére


tvamos
nagyúr

Nem kell oda dióda. Honnan taplalod? Hány relé modul lesz? (Mondjuk egyszerűbb lenne, ha a relé modult is linkelnéd.)

[ Szerkesztve ]

"Mindig a rossz győz, és a jó elnyeri méltó büntetését." Voga János

(#2654) fpeter84 válasza Danex (#2652) üzenetére


fpeter84
senior tag

Kimérheted / lekövetheted, de feltehetően akkor az a dióda úgy van kötve a nyákon, mint ahogyan az a kapcsrajz is mutatja: a tekerccsel párhuzamosan, a csíkja a + felé fordítva, és akkor nem kell több elég ez az 1...

Ránézésre nekem is ugyanilyenből van egy marékkal. Adj tápot a modulnak, a kimenetére pedig köss egy ledet (soros ellenállással), vagy ha nincsen kéznél akkor jó egy voltmérő, vagy akár maga az arduino is sorosra küldéssel, és próbálgasd hogy miként viselkedik a modulod a potikat tekergetve, ha van rajta jumperelés akkor azt állítgatva, és akkor fogod tudni hogy mennyire viselkedik következetesen...

(#2655) Danex válasza tvamos (#2653) üzenetére


Danex
addikt

[link] Ugyan ezek az alkatrészek vannak rajta(dióda, ellenállások stb), már régen vettem így pontosan ugyan azt nem tudom linkelni.

Egy 5V-os tápról menne, én egy telefontöltőn gondolkozom, hiszen maga az arduino gyakorlatilag nem fogyaszt, a relé a maga 0,1A-ével ami megy fél percig meg megint nem hiszem, hogy gond lenne.

Persze a delejt nem az arduino-n keresztül terveztem adni.

1db relé lesz, egy fali lámpát kapcsolna.

(#2654) fpeter84 Majd rámérek akkor délután, vagy lehet elnézek a boltba és legyen még egy benne, gondolván ki tudja, mit pakoltak bele a kínaiak :U

Köszönöm a segítséget! :R

(#2656) tvamos válasza Danex (#2655) üzenetére


tvamos
nagyúr

Nem kell a dióda, úgy, a hogy a srác rajzolja ott. Kifejezetten hülyeség.

(#2651) fpeter84 válasza Danex (#2650) üzenetére
Akkor sem úgy kell bekötni!

[ Szerkesztve ]

"Mindig a rossz győz, és a jó elnyeri méltó büntetését." Voga János

(#2657) skul0 válasza Danex (#2655) üzenetére


skul0
aktív tag

Én épp a napokban építettem meg az fpeter84 kolléga által linkelt kapcsolást,kb egy az egyben ugyan az. Nálam jól működik.
Az általad linkelt modulon látszólag ezek mind megvannak, plusz táp- és behúzás visszajelzés, szóval a modulon túl már nem hiszem hogy plusz diódára lenne szükséged.

(#2658) fpeter84 válasza tvamos (#2656) üzenetére


fpeter84
senior tag

:R Igazad van, nem gondoltam végig rendesen, a tutorialban tényleg hülyeséget ábrázolnak: szembe fordítva, a tekercs felső bekötési pontja és a táp közé tette...

@Danex: Szóval akkor csak azt ellenőrizd le, hogy úgy helyezkedik e el mint a #2654-ben linkelt képen

Azért láttam én már csodákat a kínai kapcsolásokban! A legutóbbi viccessel pl egy ilyen breadboard shield-en:

A reset és a másik gomb konkrétan nincsen sehová kötve, illetve ami van az marhaság: egy ellenálláson keresztül egy vak lábra (a vak lábat is hiába földelem, nincsen rá hatással az ellenállás miatt) valamint egy LED-en keresztül elmegy egy üres kondihely egyik lábára és ennyi. He? :W

Ennél persze vannak sokkal durvábbak is, ahol nem csak elnézett valamit a kis kínai, hanem teljesen tudatosan átverésre gyártott USB HUB-ok pl, fake (csepp) csippel, összevissza tartó vezetékezéssel, stb...

(#2659) tvamos válasza fpeter84 (#2658) üzenetére


tvamos
nagyúr

Hat, neha benez az ember dolgokat. En is... Nem tudom, hogy aki a tutorialt irta, az mennyire szakember, vagy eppen megorult, hogy mukodik neki valami, es leirta. Mert mukodni, mukodik... valoszinuleg.

(#2655) Danex
Egy 5V-os tápról menne
Ez igy jo lehet. Arra akartam celozni, hogy ha bovitened, es felkerul tobb rele, akkor az Arduino LDO-ja nem fogja birni. De kulso taprol, az jo.

[ Szerkesztve ]

"Mindig a rossz győz, és a jó elnyeri méltó büntetését." Voga János

(#2660) Danex


Danex
addikt

Köszi a segítségeket, most épp a PIR-t próbálom beüzemelni, de amilyen egyszerűen kéne mennie pont annyira nem megy sehogy sem, egyszerűen semmi jelet nem kapok tőlük. 5-ből 5 selejt lenne?

(#2661) tvamos válasza Danex (#2660) üzenetére


tvamos
nagyúr

Gyanús, hogy valamit rosszul csinálsz...

"Mindig a rossz győz, és a jó elnyeri méltó büntetését." Voga János

(#2662) Danex válasza tvamos (#2661) üzenetére


Danex
addikt

Pedig ha jól olvastam szimpla DigitalRead kell a pinre és jónak kéne lennie, bekötést is ellenőriztem, majd holnap még megpróbálom :(((

(#2663) mArZsi


mArZsi
tag

Sziasztok!

Vezérelt már valaki több stepper motort egy időben egymástól függetlenül? Ki hogy oldotta meg? AccelStepper library-val működik, de ott nem tudom olyan gyorsan hajtani, mint mondjuk egy sima for loop-al. Ráadásul a hangja se az igazi, bárhogy paraméterezem a sebességeket. Ötleteket, megoldásokat szívesen fogadom :K

(#2664) zka67 válasza mArZsi (#2663) üzenetére


zka67
őstag

Szia, igen, megszakítás használatával pontosan lehet vezérelni több motort is egyszerre.

Tudom, sok embernek fogalma sincs arról, hogy mi a megszakítás, mit lehet és nem lehet megcsinálni vele, de higgyétek el, hogy baromi jó dolog. Én komolyan megőrülök, amikor meglátom egy kódban, hogy a millis-sel időzítetek, vártok, ezalatt a proci nem csinál semmi mást, és nem azért van, hogy lustálkodjon.

Egyébként a millis is egy megszakítással működik...

Gyakorlatilag minden eszközt lehet megszakítással kezelni, a soros porttól kezdve a GPIO-n át az SPI-ig, mindent. Miért várjak arra, hogy jön egy karakter a soros porton? Majd a megszakítás szól, hogy jött egy karakter és akkor majd foglalkozom vele, addig csinálok mást. Vagy miért várjak arra, hogy lenyomjanak egy gombot? Szóljon a megszakítás, hogy lenyomták azt a gombot, és majd akkor foglalkozok vele.

Neked konkrétan egy (vagy akár több) timer megszakításra van szükséged, amivel időzíted a motorod sebességét. Ha le akarod állítani a motort, akkor vagy egy flag-el jelzed a kiszolgáló rutinnak, hogy az a motor éppen áll, vagy ha külön timer-eket használsz, akkor egyszerűen leállítod a timert. A sebességet vagy a timer-rel változtatod, vagy a timert beállítod olyan sűrű megszakításra, amiből tudsz egyszerűen osztással sebességet állítani.

A megszakítást kiszolgáló rutinok nem futhatnak a végtelenségig, előbb-utóbb vissza kell térniük a rendes programhoz, hogy más megszakítások is kiszolgálásra kerülhessenek (vagy lehet még a prioritással is játszani). Ezzel azt akarom mondani, hogy minél gyorsabban lefut a rutin, annál jobb. És ehhez nem árt, ha az ember ismeri a proci utasításkészletét, hogyan lehet assembly utasításokat beépíteni a C kódba, hogyan tud együtt működni a két nyelv.

(#2665) mArZsi válasza zka67 (#2664) üzenetére


mArZsi
tag

Köszönöm. Interrupt, gondoltam. RPi-re Pythonban írtam már egy vezérlőt, ha össze jönne Arduinora is alacsony szint és C diploma nélkül, akkor leváltanám. Mivel valójában nem kell linux meg HDMI, pár motor vezérléséhez. Tetszik, csak még új a pálya. Ebből eredően én a millis/micros és for ciklustól még nem váltam le a tekercsek meghúzásánál. AccelStepperrel meg leírtam a bajom, bár lehet ahhoz is én vagyok a kevés :B Thread úgymond itt nincs és át kell hidalni valamivel. Konkrétabb code részletet vagy valami kiindulási pontot tudnál mondani? A4988 a driver, step, dir paraméterrel vezérelt Nema17-ek.

(#2666) tvamos válasza mArZsi (#2665) üzenetére


tvamos
nagyúr

Van két timered, 50%-os PWM-mell, egymástól függetlenül tudsz velük küldeni két motort. Ha több kell... Én arra már egy komolyabb procit vennék. Pl. Teensy 3.2

"Mindig a rossz győz, és a jó elnyeri méltó büntetését." Voga János

(#2667) gyapo11 válasza tvamos (#2666) üzenetére


gyapo11
őstag

Lehet az arduino boardon is assembly kódot futtatni, és akkor sokkal gyorsabb, de nehéz a fejlesztés, az assembly nem annyira programozóbarát mint a c vagy c++. Ezért aztán nyers erővel szokták helyettesíteni, gyorsabb processzorral.

menyország -> mennyország, akadáj -> akadály, jótálás -> jótállás, Iphoneal > Iphone-nal, kisuly > kisujj, csővet > csövet

(#2668) tvamos válasza gyapo11 (#2667) üzenetére


tvamos
nagyúr

Ne erts felre, en assembly programozassal kezdtem, meg c-ben programozok, de egy ha egy ezressel tobbert van sokkal gyorsabb processzor, en 1-2 darabert nem szerencsetlenkedem. Ha 20-50 ezerrol van szo, (vagy evi 1 milliorol,) akkor igen, de akkor nem is Arduino. Szerintem ezert folosleges megtanulni.. Ha valaki kihivast lat benne... akkor gyorsan felejtse el!

"Mindig a rossz győz, és a jó elnyeri méltó büntetését." Voga János

(#2669) fpeter84 válasza Danex (#2660) üzenetére


fpeter84
senior tag

Próbálgasd először egy leddel a kimenetén - akkor biztos lehetsz benne hogy nem a programodban van a hiba...

(#2663) mArZsi

...a hangja se az igazi...

Akkor egészen biztos hogy rossz logikával léptet és rángatózik tőle a motor, annak a hangját hallod. Első körben célszerű delay-ekkel saját vezérlést összerakni hozzá, aztán ha az már jól viselkedik és szükség van rá akkor jöhet a timer interrupt-okra helyezés - illetve pont most tanulmányozom a DUE (SAM3X8E) doksijában a PWM szekciót és ott látok dedikált stepper motor meghajtást is, esetleg arra is el lehet kanyarodni...

-------------------------

Ha már feljött ez a téma, DUE-n játszott már valaki az Input Capture perifériával? Ebből a példából kiindulva sikerült élesztenem a TIOA0/6/7/8 lábakat (PWM2/3/5/11), tudok velük frekvenciát mérni, de mire valók a TIOBx lábak? Ezt még nem sikerült megértenem a doksiból - ezeket is lehet független Input Capture lábnak használni, vagy ezek valami kiegészítő funkcióra vannak az A párjaik mellé? Jó lenne, ha nem csak 4 ICP lábat tudnék használni egy DUE-n (esetleg egy 5-dik ha az AD7-ről leveszem az analóg funkciót)...

(#2670) DrojDtroll


DrojDtroll
addikt

Zenner dióda nélkül nem lehet megcsinálni, hogy a gép usb-s billentyűzetként lássa az arduinót?

(#2671) fpeter84 válasza DrojDtroll (#2670) üzenetére


fpeter84
senior tag

Nem, mert az USB adatszálai max 3.3V-ot kaphatnak - nem biztos hogy belepusztul a géped ha mégis rádugod az 5V I/O feszültségű lábat, de benne van a pakliban. Egyébként is eléggé gányolás ez a szoftverből kezelt protokol és erőszakkal illesztett láb - nekem elég sok kompatibilitási gondom volt vele, hol ment hol nem - jobban jársz ha natív USB-s típust használsz helyette: Pro Micro, Leonardo, Beetle - mindhármon ATMEGA32U4 van, vagy esetleg az ARM-os DUE

(#2672) DrojDtroll válasza fpeter84 (#2671) üzenetére


DrojDtroll
addikt

Köszönöm szépen.

(#2673) Tankblock válasza DrojDtroll (#2670) üzenetére


Tankblock
aktív tag

Level shifter?

5V és 3V3 között nem lehet megoldás? Csak kérdezem bevallom őszintén nem olvastam vissza...

Release the Beast....

(#2674) DrojDtroll válasza Tankblock (#2673) üzenetére


DrojDtroll
addikt

Vettem ma diódát.

(#2675) DrojDtroll válasza fpeter84 (#2671) üzenetére


DrojDtroll
addikt

V-usb library-val próbáltad?

(#2676) fpeter84 válasza DrojDtroll (#2675) üzenetére


fpeter84
senior tag

Amit csak találtam azzal végigpróbáltam és problémásak voltak mind - a v-usb is köztük lehetett - illetve régebben is próbáltam már utánépíteni hasonló kapcsolást másik kisebb atmel-lel (i2c-tiny-usb) és az se volt megbízható, hol ment hol csak ismeretlen eszköz. Utána kerítettem egy Leonardo-t és az azóta is teszi a dolgát mint IR vevős billentyűzet/egér/távirányító

Eredeti (MEGA16U2) vagy kínai (CH340) Arduino-d van? Ha eredeti, akkor azon a segéd MEGA16U2-t is át lehet akár programozni más célra ha van hozzá íród vagy még1 Arduino-d - az is natív USB-s típus...

(#2677) DrojDtroll válasza fpeter84 (#2676) üzenetére


DrojDtroll
addikt

kínai nano és arduino-m van

(#2678) tvamos válasza fpeter84 (#2676) üzenetére


tvamos
nagyúr

Nagyon régen (vagy 6-8 éve) próbáltam mega8-cal, az jól működött. Semmi gond nem volt vele. Mondjuk nem az Arduino frameworkkel. (A régi Arduinokon is mega8-cal volt a serial usb. Nem?) Én NTC hőmérsékletet küldtem pc-re, vcom-on. (Node assembly programot kellett írni.)
Szerintem már felesleges ezzel kinlodni. Vannak ebay-en (banggoodon) ezek a Pro Micro ATmega32U4 boardok. Olcsóbban nem nagyon megy máshogy sem.

"Mindig a rossz győz, és a jó elnyeri méltó büntetését." Voga János

(#2679) tvamos


tvamos
nagyúr

Kaptam ma egy szomoru levelet...
since Monday last week Atmel is part of Microchip
:( :O

"Mindig a rossz győz, és a jó elnyeri méltó büntetését." Voga János

(#2680) fpeter84 válasza tvamos (#2679) üzenetére


fpeter84
senior tag

Először azt hittem valami megkésett április elsejei hír jutott el hozzád, aztán felmentem az atmel oldalára és megláttam a fejlécet - viszont a press rovatban semmi nyoma az egésznek érdekes módon egyikük oldalán sem... :U

szerk: közben csak meglett... [link]

[ Szerkesztve ]

(#2681) tvamos válasza fpeter84 (#2680) üzenetére


tvamos
nagyúr

Nem tréfa!

Nekem nem lenne gondom a Freescale Cortexes Teensy-végül sem, de azt még ugye az NXP ette meg nemrég, szóval... No, mindegy is. Csak eszembe jutott.

"Mindig a rossz győz, és a jó elnyeri méltó büntetését." Voga János

(#2682) peter1998


peter1998
tag

Sziasztok! Valaki kötött már össze ESP8266-ot és egy 433Mhz-es vevőt ? Félek hogy a jelszintekkel valami gáz lesz.

(#2683) Arduino Lab


Arduino Lab
újonc

Sziasztok!

Elindítottam egy youtube csatornát annak érdekében, hogy minél többet megismerjék a benne rejlő lehetőségeket, és minél többet kedvet kapjanak egy kis programozáshoz, akár csak egy hobbiprojekt erejéig. Remélem hasznosak lesznek számotokra vagy ismerőseitek számára!

A videóimat itt találjátok:

https://www.youtube.com/channel/UCmPAcId7ZigwLFfpxPwYfiA

Facebook:

https://www.facebook.com/magyar.arduino.labor/

(#2684) tvamos válasza Arduino Lab (#2683) üzenetére


tvamos
nagyúr

Nagyon jó! :) Van még hova fejlődni, de jó kezdet.

Alig publikáltad, máris elavult. Már Microchip cég. Milyen fura fintora a sorsnak.
Remélem, egyre több alternatív processzoros board lesz, kicsit régi már az AVR platform.
Szerintem egy rendes IDE-néz csak jó lenne egy rendesen működő debugger. A beágyazott terminál méd nem az.

"Mindig a rossz győz, és a jó elnyeri méltó büntetését." Voga János

(#2685) TESCO-Zsömle


TESCO-Zsömle
félisten

Sziasztok!

Kéne nekem egy erősítőhöz egyedi beviteli és visszajelző szerv. Erre mennyire alkalmas az Arduino és mennyire lenne bonyolult ezt kivitelezni?

Konkrétan arról van szó, hogy a hagyományos potméteres-kapcsolós megoldásokat szeretném lecserélni. Tudjátok, hangerő, mély/magas hangszín, balance, forrásválasztás, kimenetválasztás. Semmi extra. Ezt szeretném minimum forgóenkóderes megoldással, de inkább érintés-vezérelve megoldani. És itt most nem érintőkijelzőre vagy fóliára gondolok, hanem mint mondjuk ami az egyik nagyon régi TV-n is volt, hogy csak hozzá kellett érni egy fémlaphoz és akkor a közepén levő piros led jelezte, hogy átugrott oda a csatorna. A lényeg, hogy minél könnyebben el tudjam rejteni a beviteli szerveket és a lehető legkisebb erőt igényelje a vezérlés maga. Visszajelzésnek meg mondjuk egy-egy sor LED-et gondoltam. Ha ezt meg tudnám fejelni egy távirányítóval, az maga lenne a tökély.

Mindezt a lehető legkisebb helyen. Nem tudom ez mennyire egyszerű/bonyolult így, régóta szemezgettem ezzel a platformmal meg a programozásával de soha nem jutottam oda, hogy akkor neki is vágjak, szóval 0 elméleti/gyakorlati tapasztalatom van e téren. Forrasztani tudok, LEGO-zni tudok.

Előre is köszönöm a segítséget.

Sub-Dungeoneer lvl -57

(#2686) zka67 válasza TESCO-Zsömle (#2685) üzenetére


zka67
őstag

Szia, nem feltétlenül kell hozzá arduino, de azzal is meg lehet oldani.

Én így csináltam meg a távirányítós hangerő- és hangszínszabályzómat.

Egyedül a balance maradt le róla, de a D/A konverter loudness kimenetét át lehet kötni egy digitális kimenetre, és a felszabadul D/A kimenet pedig mehet a balance bemenetre, ha valakinek nagyon hiányzik.

Az áramkör lényege az LM1036 és a TLC7226-os IC-k. A többi részét pedig bármilyen mikrokontrollerrel meg lehet csinálni.

(#2687) TESCO-Zsömle válasza zka67 (#2686) üzenetére


TESCO-Zsömle
félisten

Ilyet találtam kit-be is. Ami a gond: LCD nem jó. Nem fér bele a designba. Egyrészt mert kék, másrészt mert az erősítő függőleges kialakítású lesz, így vízszintesen nem fér bele.

Mindenképpen LED-soros visszajelzés kell.

Igazából azért érdeklődtem a nehézség iránt, mert semmi tapasztalatom és hozzáértésem nincs mikrokontrollerek terén.

Sub-Dungeoneer lvl -57

(#2688) gyapo11 válasza TESCO-Zsömle (#2687) üzenetére


gyapo11
őstag

Szerintem szét kell választani a projectet egységekre, és elkezdeni fölépíteni.
Pl. TSOP a távirányításhoz, próbáltam, működik.
Érintőt szerintem külső áramkörökkel a legkönnyebb, ha jól emlékszem
cmos ic-ből láttam rajzot, két oszcillátor, az egyikbe kapcsolódik az
érintőfelület, elhúzza a frekit, ebből kell csinálni jelet. Vagy két
felület, és az ujj vezetőképessége nyit mondjuk egy tranyót, ami a
felhúzó ellenállást testre húz. Ez már mehet is az arduinoba.
Ledsor sem bonyolult, csak ha sok a led, akkor meg kell gondolni, hogy
minden ledre jut-e arduino kimenet. Ha nem, akkor valami multiplexelés
kell, vagy shiftregiszter.
Ezekből már megy a vezérlés, a hangerő, hangszín és ki-bemenetek nem
tudom mivel lesznek, azokhoz kell illeszteni a jeleket.

menyország -> mennyország, akadáj -> akadály, jótálás -> jótállás, Iphoneal > Iphone-nal, kisuly > kisujj, csővet > csövet

(#2689) zka67 válasza TESCO-Zsömle (#2687) üzenetére


zka67
őstag

(#2690) joberec


joberec
újonc

Sziasztok.Van egy olyan problémám hogy a nyomtatóm(PrusaI3) ramp1.4el menő gépem nyomtatni szeretne és beáll alap pozícióba de az extruder feje lejjebb van,azt hogy lehet átirni hogy fejjebb vigye alap állás után pl. 2cm? És a z-tengely pálya mozgást állítani,mert van még egy olyan hiba hogy az első réteget leragassza és utána a második rétegnél a z-tengely lift.e jobban fejjebb ugrik a kelleténél... Nem állítottam semmit rajta,és nem is találtam rá semmi megoldást,hátha ti tudtok..eleinte a gép jó uzemelt,de most érthetetlen nekem hogy mi történt...nem nyultam hozzááá,léptető motor hibás lehet ? Vagy esetleg a build ?

ui.:folytatom egy párbeszéd résszel:Mechanikusan és szoftveresen is próbáltam már mindent! Tényleg mindent.... A szeletelőt is újra raktam és még más programot is töltöttem le mellé,de ugyan ugy a z-tengely megugrik!ha ezek nem akkor mi ? és melyikkel mit állítok mert már állítottam be dolgokat a firmwaren,tapasztaltam is a különbségeket viszont az ami nekem kéne nincs meg.z-offsetet nemn is találom... Stoppert ne is mond :/ Próbáltam már ezerszer,még az extruder fejjel is játszottam de ugyan úgy ugrik.

(#2691) junhum


junhum
tag

Sziasztok!

Nem jövök rá, hogy mit kellene átírnom.
Nano+i2cLCD+DHT22

// then define the LCD
#include <Wire.h>
#include <LCD.h>
#include <LiquidCrystal_I2C.h>
#define I2C_ADDR 0x27 // <<- Add your address here.
#define Rs_pin 0
#define Rw_pin 1
#define En_pin 2
#define BACKLIGHT_PIN 3
#define D4_pin 4
#define D5_pin 5
#define D6_pin 6
#define D7_pin 7
LiquidCrystal_I2C lcd(I2C_ADDR, En_pin, Rw_pin, Rs_pin, D4_pin, D5_pin, D6_pin, D7_pin);
#include "DHT.h"

#define DHTPIN 2 // what digital pin we're connected to

#define DHTTYPE DHT22 // DHT 22 (AM2302), AM2321

DHT dht(DHTPIN, DHTTYPE);


void setup(void) {
lcd.begin (16, 2); // <<-- change for your LCD size if needed
//LCD Backlight ON
lcd.setBacklightPin(BACKLIGHT_PIN, POSITIVE);
lcd.setBacklight(HIGH);
lcd.home (); // go home on LCD
lcd.print("Your temperature:");
lcd.clear();
Serial.begin(9600);
Serial.println("DHTxx test!");

dht.begin();

delay(1500);
}

void loop(void) {

delay(2000);

int chk = dht.read(DHTPIN);

float h = dht.readHumidity();
// Read temperature as Celsius (the default)
float t = dht.readTemperature();
// Read temperature as Fahrenheit (isFahrenheit = true)
float f = dht.readTemperature(true);

// Check if any reads failed and exit early (to try again).
if (isnan(h) || isnan(t) || isnan(f)) {
Serial.println("Failed to read from DHT sensor!");
return;
}

// Compute heat index in Fahrenheit (the default)
float hif = dht.computeHeatIndex(f, h);
// Compute heat index in Celsius (isFahreheit = false)
float hic = dht.computeHeatIndex(t, h, false);

Serial.print("Humidity: ");
Serial.print(h);
Serial.print(" %\t");
Serial.print("Temperature: ");
Serial.print(t);
Serial.print(" *C ");
Serial.print(f);
Serial.print(" *F\t");
Serial.print("Heat index: ");
Serial.print(hic);
Serial.print(" *C ");
Serial.print(hif);
Serial.println(" *F");

lcd.setCursor (0,1); // go to start of 2nd line

lcd.print("C=");
lcd.print((float)DHT.temperature, 0);

lcd.print(" H=");
lcd.print((float)DHT.humidity, 0);
lcd.print("%");

delay(1000);
lcd.clear();
}

Az lcd.print((float)DHT.temperature, 0); és a humidity-nél ezt dobja:

termometar_lcd:82: error: expected primary-expression before '.' token

lcd.print((float)DHT.temperature, 0);

^

termometar_lcd:85: error: expected primary-expression before '.' token

lcd.print((float)DHT.humidity, 0);

^

exit status 1
expected primary-expression before '.' token

Több kódot ollózok össze és hiányában :)

Your Workout Is My Warm-Up so Shut The Fuck Up And Train

(#2692) fpeter84 válasza junhum (#2691) üzenetére


fpeter84
senior tag

azthiszem azzal lesz baja hogy lemaradt a ()

lcd.print((float)DHT.temperature(), 0);

(#2693) junhum válasza fpeter84 (#2692) üzenetére


junhum
tag

Helló,

Sajnos nem az a problémája :(

Ha beírom ugyan azt a hibát írja

Your Workout Is My Warm-Up so Shut The Fuck Up And Train

(#2694) zka67 válasza junhum (#2691) üzenetére


zka67
őstag

Szia, az arduino oldalán fent van minden funckció részletes leírása, így az lcd.print is.

Rögtön az elején vannak a paraméterei:

Parameters
lcd: a variable of type LiquidCrystal
data: the data to print (char, byte, int, long, or string)

és mint látható, float típus nem szerepel köztük...

(#2695) junhum válasza zka67 (#2694) üzenetére


junhum
tag

Szia!

Én ezekben azt nem értem, (többek közt) hogy tutorialból ollózom össze (mert ennyire/se vagyok képes) és nálam nem megy.

Viszont sikerült megcsinálnom! Átírtam a serial.print-et lcd.printre és így kiírja. természetesen megadtam, hogy melyiket hova.

Most majd az jön, hogy vagy ússzon be a 3. adat vagy törölje és írja ki.

Nézelődöm tovább!

Köszönöm a segítséget! :R

Your Workout Is My Warm-Up so Shut The Fuck Up And Train

(#2696) Istv@n


Istv@n
aktív tag

Sziasztok!
Egy elvi kérdés... Van valamilyen megkötés, vagy ajánlás, a programkód összetettségére (vagy szerkezetére) vonatkozólag?
Van egy programom, ami egy elszívó ventilátort vezérel páratartalomra, illetve manuális indítási lehetősége is van, amit folyamatosan figyel (szóval nincs benne delay(), csak ciklusok...), és elég kacifántos a kód. Az "if"-ek és "for" ciklusok van ahol 3 szint mélységben vannak egymásba ágyazva...
Működik rendesen, kommenteztem is, úgyhogy el lehet rajta menni, csak elsőre elég borzasztónak tűnik...

(#2697) erer1000


erer1000
őstag

LAN-os shield-el mekkora adat átviteli sebességet lehet kicsikarni?
Nyilván nem egy eget rengető tempó. 1-2Kb/s?

M5A99X-EVO R2.0 , 1050Ti, 4x8GB 1960MHz , FX 8350@4,4GHz, 1x3TB+2x1TB HDD, 120GB+480GB+1TB SSD || HP Pavilion 15-CX0000NH

(#2698) Istv@n


Istv@n
aktív tag

Sziasztok!

Találkozott már valaki olyannal, hogy a thingspeak.com-ra nem sikerül egyszerre 8 field-et küldeni? Ha csak 2-3 megy egyszerre, akkor jó, viszont, ha 8 adatot szeretnék egy lépésben, akkor üres mezőket küld...

A thingspeak-on találtam egy tutorialt, az alapján próbálkozok.

unsigned long ChNr = XXXXXX;
const char * writeAPIKey = "XXXXXXXXXXXXXX";
.
.
.

ThingSpeak.setField(1, data1);
ThingSpeak.setField(2, data2);
ThingSpeak.setField(3, data3);
.
ThingSpeak.writeFields(ChNr, writeAPIKey);
.

Ezek a kód ide vonatkozó részei. Próbáltam várakoztatni az egyes lépések között, illetve 30mp-enként küldöm csak az adatokat.
Ha konzolra kiíratom az értékeket, ott minden jó. Ha 2 részletben küldöm, 20mp késleltetéssel, akkor is jó.

Egyben mért nem mehet? Láttam egy két példában, egy html linken keresztüli feltöltést... Lehet, hogy azzal kellene próbálkoznom?

Ja, ethernet shieldet használok, ha az számít.

[ Szerkesztve ]

(#2699) zka67 válasza Istv@n (#2698) üzenetére


zka67
őstag

Szia, ha nem multipacket-tet használsz, akkor lehet hogy nem fér bele az összes adatod egy packet-be, és a többi elveszik.

(#2700) Istv@n válasza zka67 (#2699) üzenetére


Istv@n
aktív tag

Hello!

Hol lehetne utánaolvasni ennek a multipacket dolognak? Az ethernet shield standard függvénykönyvtárárt használom, abban nem rémlik ilyen paraméterezhetőség.

Copyright © 2000-2024 PROHARDVER Informatikai Kft.