Fórum témák
» Több friss téma |
A klónok CH340 Soros-USB illesztőjének drivere (Letöltés)
Fejlemény:
A nem működő nano-k a program biztosn fut, mert a led megszakításból villog. Azonban reset gomb megnyomása után elindul az ethernet is. A setupba beraktam késleltetéseket ide oda (pl ethernet.begin() elé után, de nem számít. Uno board-on is simán indul.
Köszi a választ.
Lábkiosztást ellenőriztem, azonos, és azóta fenti hozzászólásom szerint elindul, csak nem magától.
Azt tudom még elképzelni, hogy nem teljesen azonos a bootloaderük.
Köszi
Megpróbálok rátölteni az egyikre egy "gyárit" az IDE-ből aztán meglátjuk.
Sziasztok
Van valakinek tapasztalata arduinoval való hőmérséklet szabályozással? Egy pt100-ast és egy 1K ellenállást kötöttem feszültségosztóként az analog bemenetre, de nagyon pontatlan. Felszereltem egy lcd kijelzőt is, azon lehet látni, hogy 10-20 fokot ugrál a beolvasott hőmérséklet érték. meg lehet valahogy oldani, hogy egy fokon belül legyen a pontosság?
Probáld meg ezt:
Tegyél be a void(setup)-ba egy kb. 10 másodperces delayt. Szerintem a CH340G-s nano hamarabb elindul, mint az ethernet modul.
Elég karcsú ez az egyszerű feszültség osztós hőmérő hardver elrendezés.
Illene inkább mellé rakni egy analóg mérőerősítős áramkört (műveleti erősítővel). Aztán ami ebből kijön analóg jel azt rá küldeni a AD konverter bemenetére. No meg több mérési ciklus átlagát venni és csak azt jelezni ki. Mert akkor talán nem "lebegne" ennyire a kijelzett értéked. Az ellenállás karakterisztikáját se ártana felvenni és akkor ennek a táblázatnak az eredményeit beépíteni a programba. Ezzel némi kompenzációt is tennél a pontosabb hőfok méréshez. Persze elvileg lineáris a pt100 ezért szeretjük. Lehet inkább pt1000 kellene választanod mert 1k ellenállással osztasz. No meg azt se felejtsük el , hogy az ellenálláson átfolyó mérő áram is felfűti . Így azt nem csak a környezeti hőmérséklet befolyásolja , hanem a rajta átfolyó mérő áram is. Nem is olyan egyszerű ez a pt100 használata. A hozzászólás módosítva: Ápr 15, 2016
0-200 fok között kb.: 80 ohm változás történik.
Ez a 80 ohm változás 1k ellenállásosztó esetén nagyon kicsi max 50-100mv változást eredményez. Légy szíves számolj utána ha delta R 80 ohm akkor mekkora delta U jön létre az feszültség osztó kimenetén 5V tápfesz esetén . Ezután pedig azt számold ki, hogy az 50-100mv változás hány bitnyi változást eredményez az AD kimeneti adataiban. Ebből kiderülhet mekkora felbontásod és pontosságod lehet a hőmérséklet megjelenítésénél. Ha ezekkel nem vagy tisztában akkor légy szíves utána nézni ezeknek az alapvető elektronikai ismereteknek! A hozzászólás módosítva: Ápr 15, 2016
Idézet: ===>>> 50-100 mV [milli Volt]„50-100mv” A hozzászólás módosítva: Ápr 15, 2016
Sziasztok! Lehet hülye kérdés de, hogy lehet azt megoldani hogy 2 tizedes jegy helyett egyet írjon ki az lcd kijelzőre a program pl: 10.22 helyett 10.2?
Ez a program egy részlete A hozzászólás módosítva: Ápr 15, 2016
A hozzászólás módosítva: Ápr 15, 2016
Hova írjam be ? Mer nem működik . Mer így meg lett még 4 tizedes szám is a kijelzőn
A hozzászólás módosítva: Ápr 15, 2016
Lebegőpontos számok kiíratásnál a print-nek megadhatsz egy második paramétert, ez lesz a kiírandó tizedesek száma. Tehát a meglevő kiíratásaidba szűrd be egy vesszővel elválasztva az 1-et!
Sziasztok!
Soros port ékezetes betű kezelésel vanak problémák !
És amit vissza ad rossz!
Mi lehet probléma? Idézet: Az ASCII kódtábla tudtommal csak 127-ig tart. Efölött a DOS, a Windows, az ISO-akárhány, az UTF-8 mind másképp értelmezik a kódokat. Mindamellett a Windows programkönyvtárak öntevékenyen át is kódolhatják vagy csonkíthatják a (virtuális) soros porton bejövő kódokat. Néhány éve vért izzadtam, mire egy Visual C++-ban írt mintaalkalmazásban ki tudtam kapcsolni a beérkező kódok 7 bitesre történő csonkítását. „Serial.println("ASCII Table ~ Character Map");” Még érdekesebb, ha például az Arduino programot Windows alatt ANSI kódolással gépelted be, a kiíratást pedig Linux ablakban Unicode kódolású fontbeálítással íratod ki...
Megoldás:
The extended ASCII codes (character code 128-255)
Heellooo !
Nagyon kezdő vagyok a témában, még hardware-em sincs, de bőszen tanulok hetek óta Szeretnék egy automata gomba termődobozt készíteni de mire megjön a cuccom egy kész kóddal szeretnék előállni . Lényeg a következő ... 28foknál kapcsoljon BE egy akvárium melegítő, 31foknál KI... 80%-os páratartalomnál a párásító BE, 95%-nál KI... ! A DHT22 alapból Celsius és % mértékegységű, vagy kell konvertálnom fahrenheit-ből celsiusba? Ha igen, akkor a kód mely részében kell megadnom a konverzió kódját? setupban vagy loopban? Jöjjön a KÓD #include <LiquidCrystal.h> #include <dht22.h> LiquidCrystal lcd (12,11,5,4,3,2); dht DHT22 #define DHT22 7; #define HEATERRELAY 8; #define FOGGERRELAY 9; void setup() { lcd.begin(16,2); pinMode(HEATERRELAY, OUTPUT); digitalWrite(HEATERRELAY, LOW); pinMode(FOGGERRELAY, OUTPUT); digitalWrite(FOGGERRELAY, LOW); delay (5000); } void loop() { DHT22 = DHT.read22(DHT22); lcd.setCursor(0,0); lcd.print ( ̎Temperature = ̎ ); lcd.print(DHT22.temperature); lcd.clear; delay(6000); } if(DHT22.temperature < 28) { digitalWrite(HEATERRELAY, HIGH); } else { digitalWrite(HEATERRELAY, LOW); } if(DHT22.temperature > 31) { digitalWrite(HEATERRELAY, LOW); } else { digitalWrite(HEATERRELAY, HIGH); } DHT22 = DHT.read22(DHT22); lcd.setCursor(0,1); lcd.print( ̎ Humidity = ̎ ); lcd.print(DHT22.humidity); lcd.clear; delay(6000); if(DHT22.humidity < 80) { digitalWrite(FOGGERRELAY, HIGH); } else { digitalWrite(FOGGERRELAY, LOW); } if(DHT22.humidity > 95) { digitalWrite(FOGGERRELAY, LOW); } else { digitalWrite(FOGGERRELAY, LOW); delay(6000); A fő kérdés a következő lenne... kell-e a második if-else függvény a hőmérsékletnél és a páratartalomnál? Tehát ami kikapcsolja a relét, ha eléri a kívánt tartományt!?!?!?!
Szia! Gondold át mit is akarsz. 28-31 közt tartani a hőmérsékletet. Tehát ha kevesebb mit 28 fok be kell kapcsolni, ha több mint 31 akkor ki. Vagyis az else ágak nem kellenek. Tehát egy tulajdonsághoz csak simán két if. Egyik bekapcsol ha kissebb az érték a minimumnál, a másik pedig kikapcsol ha a maximumnál nagyobb. Így ha mondjuk 29 fok van, az első if-ed már ki is kapcsolja, majd a második mivel nincs 31 be is kapcsolja. Szegény relé azt sem fogja tudni mit csináljon
Valaki segítene a DS3231-ben? nem igazán értem.
Melyik része nem működik? A legegyszerűbb tutorial elég jó, megmutatja hogy állítsd be az időt, stb
Köszi szépen . Esetleg egy copy + paste és kiegészitéssel meg tudnád mutatni mire gondolsz ? Mert 3 hetet olvastam kb napi 5órákat, mire ennyi összejött . 3 hete még az arduinorol sem hallottam, nemhogy a C nyelvröl, uh most kicsit magas amit javasolsz :-$ . Tehát csak if függvény kell ?
Jó lenne ha a bekért adatokat (fok/pára%) inkább átlagoljad 5-10 mérés átlagát vennéd alapul amiket időben eltolva pár tized sec-el olvasol be.
Akkor elkerülhetőek lesznek a kijelzőn ugráló számok és a relék felesleges kapcsolgatása , habár ezt a bekódolt széles tartományú hiszterézis megoldja. A DHT adatlapjában benne van a F/C° váltás mikéntje, vagy amit használsz DHT-t támogató könyvtár (header fájl dht22.h) leírása ezt is tartalmazhatja , ha más nem a hozzá adott minta forráskódok tanulmányozása biztos segítséget adhat a használatára . Ha mégis kell F/C° konverziós függvény. Akkor érdemesebb külön megírni egyszer és meg meg hívni a futás során ha szükséges.
Huhhh, konkrétan nem tudnád javítani a kódot ? Mert így elég kínai, így is angol oldalakról tanultam és vadásztam össze...arduino.cc , youtube meg különböző fórumok
Elvileg ez lett volna az eredeti... void loop() { DHT22 = DHT.read22(DHT22); lcd.setCursor(0,0); lcd.print ( ̎Temperature = ̎ ); lcd.print(DHT22.temperature); lcd.clear; delay(6000); if(DHT22.temperature < 28) { digitalWrite(HEATERRELAY, HIGH); } else { digitalWrite(HEATERRELAY, LOW); } DHT22 = DHT.read22(DHT22); lcd.setCursor(0,1); lcd.print( ̎ Humidity = ̎ ); lcd.print(DHT22.humidity); lcd.clear; delay(6000); if(DHT22.humidity < 80) { digitalWrite(FOGGERRELAY, HIGH); } else { digitalWrite(FOGGERRELAY, LOW); } //END
60 nap arduinos online tanfolyam !
tavir oldal 60napos Ha erre mozdulsz, akkor ennyi idő alatt már I^2C órát építettél volna ... Nem kérdeznél feleslegesen ... A hozzászólás módosítva: Ápr 17, 2016
5ik leckét kaptam ma éjfél 04-kor de az még nem érdemleges... 7 angol kézikönyvet töltöttem le, 3 hete napi 5 órát olvasok ... de valahogy még nem áll össze, ezért kértem segítséget . Ha látnék példát, hogy mire gondoltok, többször nem kérdezném
Ezt a páratartalmat még gondold át. 80-95%? Egyszerűbb, ha feltöltöd a szobát vízzel! Ekkora páratartalmat létrehozni nehéz mutatvány, a DHT pedig 95% körül óriási hibával dolgozik. A két szélsőértéknél az értékek csak sacc jellegűek.
Másik irodalom :
interkonyv.hu Arduino programozas Van számtalan ingyenes más témájú könyv is!A regisztráció után a "megrendelt" PDF formátumú könyvet olyan fejléccel generálják le amilyen néven regisztráltál !
Köszönöm az irodalmat, rálesek .
Kovi, köszi a hozzászólást, hálisten nem szobába kell . A tervezett hardware, Arduino Uno, Dht22,lcd,akvárium melegitö és ultrahangos párásító . A cél pedig egy teljesen automata gomba termődoboz, ahol 28 és 30 fok közötti állandó hőmérsékletet kellene biztosítanom és közel 100%-os állando páratartalmat, de a 90%-körülivel is megelégszem, szóval ha vki tud alternatívát, hogyan tudom állandóan biztosítani ezeket az értékeket, legyen kedves, ossza meg velem |
Bejelentkezés
Hirdetés |