Fórum témák
» Több friss téma |
A klónok CH340 Soros-USB illesztőjének drivere (Letöltés)
Az lesz belőle hogy PuTTy-al olvasom a COM portról az adatot amit a serial monitoron is látok és azt elmentem egy .txt-be. A visszaírást is elvileg meg lehet oldani így, felnyalni fájlból és elküldeni az arduinonak. Persze a legjobb az lenne hogy egyidejűleg megy az írás/olvasás és nem kéne sehol tárolni, csak röptében menne az egész. Még hezitálok
![]()
Megint hitvitát folytattok. Én építek épületautomatizálást. 5 éve megy mikrokontrolleres vezérlés a házamban és vannak extrém zavarok. Nem arduino, de majdnem mindegy. Ha egy 12VDC relét teszel szűretlen táppal a vezérlőd mellé és egy bim-bamm csengőt kapcsolgatsz vele - olyan szép szikrákat szór, hogy a gyári PhoenixContact nLC055 is belefagy. Pedig TÜV-ös. Az Arduino - egy fejlesztőkörnyezet, ahonnan el lehet indulni. A PLC pedig egy késztermék, ahová a fejlesztői hosszú tesztelések és kísérletek, fejlesztés során jutottak el. Csodálkoznék, ha te otthon jobb és megbízhatóbb vezérlést dobnál össze bármilyen fejlesztőkörnyezetből 2Ft-ért, mint mondjuk én a 13 év fejlesztés alatt... De ha mégis így lenne - szívesen alkalmazlak, mert 9 mérnököt fogyasztottam el eddig. No de maradjunk a valóság talaján. Aki megengedheti magának, hogy a házát használja fejlesztőkörnyezetnek, Nem gyújtja fel a házat és még működik is - tegye. De ne felejtse el, hogy ha elüti a villamos - nincs rajta kívül fehér ember, aki hozzá merne nyúlni. Egy PLC-s rendszernél ez is megoldott. Természetesen egy nem PLC-s de mikrokontroller alapú piaci terméknél is. Vannak, lehetnek hibák mindegyikben , hiszen emberek csinálják. De nem mindegy a hibákat hogyan lehet orvosolni. Egy gyári terméknél a firmware lehetőség is egy ilyen megoldási forma. Más kérdés, hogy a gyártó mennyire veszi ezt komolyan, de ez meg gyártófüggő. Ha annyira chip alapon szeretnéd megoldani a dolgot - erre találtuk ki a PicoPLC projektet. A fejlesztőkártya Arduino lábkompatibilis, a programozása létra. 15 I/O pontot kezel. Magát csak a chipet is megveheted a teljes programozói háttérrel. Pár hónapon belül elkészül a fizikailag is PLC-sített változata, akkor akár dönthetsz úgy is, hogy megveszed és támogatod a magyar ipart
![]() A hozzászólás módosítva: Ápr 25, 2016
Üdv!
Egy kis segítséget szeretnék kérni. Csináltam egy árammérőt rendesen működik csak a kiírt érték nem stimmel. Amikor az analogRead kiolvassa az értéket ezt osztottam a sönt értékével.
Kell még mást is számolni?
Az analogRead nem feszültségértéket ad vissza, hanem közvetlenül a 10 bites ADC-ből kiolvasott értéket. Tehát egy 0 és 1023 közötti számot kapsz, ahol a 1023 felel meg a referenciafeszültségnek (ami alapértelmezésben a táp, de az analogReference függvénnyel megváltoztatható).
Ezzel tisztába vagyok kiolvasott értéket ad vissza. de azt viszont nem tudom, hogy irassam ki a megfelelő értéket.
1023 tartozik a referenciafeszültséghez. Tehát ahhoz, hogy feszültséget kapj, a kiolvasott értéket el kell osztanod 1023-mal, és meg kell szoroznod a referenciafeszültséggel.
Tehát alapesetben vin*5.0/(1023.0*18.0) az áramod a 18 ohmos söntön. A hozzászólás módosítva: Ápr 25, 2016
Most látom, hogy lényegében ugyanezt írtad le Te is, csak 100-zal szorozva (tehát az eredmény 10mA-ben értendő). Az nem tudom, hogy szándékos-e, hogy a nyers értéket íratod ki, és nem a számítottat. Illetve ha a vin változó egész egész típusú, akkor durván kvantálva, és mindig lefelé kerekítve kapod meg az áramot, ez se tudom, hogy szándékos-e.
Most egy kicsit elvesztem.
Megpróbál leírni amit gondolom, hogy hogyan kell. Ha nem jó kérlek javíts ki. Tehát Alapesetben a referencia feszültség 5V? Ha nem kötök semmit a "aref" pinre? pl kiolvasott érték: 450 ref:5v current=(450/1023)*5
Igen, csak nem az áram annyi, hanem a feszültség:
U=450/1023*5=2.19 V I=U/R=450/1023*5/18=0.12 A Neked most ugyanez van beírva a programodba, azzal a különbséggel, hogy meg van szorozva 100-zal, tehát az eredmény 0.12 helyett 12 lesz. Ha a számítás és a kiírás sorokat megcseréled, akkor ezt kell kapnod a soros monitoron.
2.046 jelentené a 100 való szorzást?
Ezzel szorzunk: 5/1023=0.004888
Tehát a reciprokával osztunk: 1023/5=204.6 Te ennek a századrészével, vagyis 2.046-tal osztasz, tehát százszoros értéket kapsz. Ami persze nem baj, főleg akkor, ha a vin változód egész típusú. Csak tudni kell, hogy a kimenet 10mV-ban (az áram 10mA-ben) értendő. A hozzászólás módosítva: Ápr 25, 2016
Nem akartam belepofázni, de azt a "2.046" értéket én sem tudtam hová tenni...
![]() A hozzászólás módosítva: Ápr 25, 2016
Csak alap szinten értek a plc-khez de azzal hogy írok például az LCD kijelzőre? Kikrepegem az adatot a relékkel?
Egy ATmega328-ra hogyan tudok bootloadert tenni? Milyen fuse bit beállítások kellenek?
Utána egy sima soros usb konverterrel az arduino programból tudom programozgatni? AVR ISP MKii-vel be tudom égetni a bootloadert.
Valamit biztos én rontok el.
Ha ezt irom vin=vin/1023*5/18; Soros monitoron nulla van. de ha ezt irom vin=vin/20.46*5/18; Soros monitoron 8 van. Mit rontok el?
A vin legyen int változó a 2. sorban meg vezess be egy single változót másik néven és azt írasd ki.
int vin; float vins; vin=analogRead(input); vins=vin/1023*5/18; Serial.print("fesz:"); Serial.println(vins);
Ezt irtam most de de soros monitor csa a "be"értékre ir ki adatot a "fesz"érték nullán van. A hozzászólás módosítva: Ápr 25, 2016
Az A0-t összekötötted a VIN lábbal?
Meg nem úgy van, hogy
A hozzászólás módosítva: Ápr 25, 2016
Input védett szó ne használd változó névnek.
Nem, nem is gondoltam rá.
Hiába kötöm össza a vin és A0 lábakat.
A hozzászólás módosítva: Ápr 25, 2016
Nem igazán értem mire gondolsz.
Az A0 a láb amit figyel és onnan amit be olvas értéket az jó ami nem kezd el vele matekozni. A VIN egy változó amibe betölti, egy int. Ez is jó még. A loop-ban történik az érték adás de a változó deklarációja viszont ott nincs jó helyen. Ha float vins = vin/1023*5/18; ként adja meg mivel nem loop-ban deklarálunk így nem tudná felvenni az értéket. Nem lenne értelme. Meg inkább az 1023-at osztani kéne az 5V al. Elactrofan : próbáld ki így:
A Vin mint láb a külső tápfesznek van azt ne kösd avr lábra mert ha 0>Vin>5V akkor az AVR elszáll. GPeti1977: Amit írsz az tény, de kipróbáltam és működik így is, de igazad van jobb ha nem az a neve a változójának. A hozzászólás módosítva: Ápr 25, 2016
Köszönöm a segítséget alakul csak még finomítanom kell.
Float típus nem szereti a maradékos osztást "%" hogy tudom ezt kivédeni?
cél hogy 7 segmenses kijelzőre iratom ki, mely működik is csak a float nem szereti a maradékos osztást.
Mert a float nem kompatibilis a maradékos osztással, az csak egész típusokkal működik, de ez logikus. A float az eleve törtszám, nincs olyan értelmezve rá, hogy egész része meg maradék része.
Egésszé kell konvertálni, persze megfelelően fel is szorozva 10-zel, 100-zal, vagy amennyi egész részt akarsz, utána már lehet maradékosan osztani.
Szia, igen AVR ISP MKII-vel rá tudod tenni a flasht és az eeprom-ot valamint beállítani a fuse biteket. Aztán kelleni fog az emlegetett soros usb konverter ami a kína arduino naok esetében CH340G szerintem más nem kell. Nézz meg egy arduino nano V3 PCB-t. A flash, eeprom, fusebitek értékét nemrég írtam meg ide a fórumra.
Itt megtalálod. A hozzászólás módosítva: Ápr 26, 2016
De ha belenéznél, az EEPROM üres!
Azt minek felül írni? ![]()
Mindent úgy adok tovább ahogy kiolvastam
![]() ![]() Najó őszinte leszek bele se néztem mivel működött kapásból feltettem ide.
Szia!
Köszi! Fellőttem rá a flash-t és az eeprom-ot is. Hogyan kellene tudom programozni az arduino programjával? FT232-m van. Ezt írja: avrdude: stk500_recv(): programmer is not responding avrdude: stk500_getsync() attempt 7 of 10: not in sync: resp=0x84 Próbáltam resetben tartani is, de semmi.
Esetleg egy példát tudnál nekem mutatni?
|
Bejelentkezés
Hirdetés |