Fórum témák

» Több friss téma
Fórum » Arduino
A klónok CH340 Soros-USB illesztőjének drivere (Letöltés)
Lapozás: OK   216 / 856
(#) k3gy3tl3n válasza icserny hozzászólására (») Ápr 25, 2016 /
 
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
(#) kameleon2 válasza jeges hozzászólására (») Ápr 25, 2016 /
 
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
(#) elactrofan hozzászólása Á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.

  1. vin=analogRead(input);
  2. Serial.println(vin);
  3. vin=(vin/2.046)/18; //18 a sönt értéke


Kell még mást is számolni?
(#) Balázs válasza elactrofan hozzászólására (») Ápr 25, 2016 /
 
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ó).
(#) elactrofan válasza Balázs hozzászólására (») Ápr 25, 2016 /
 
Ezzel tisztába vagyok kiolvasott értéket ad vissza. de azt viszont nem tudom, hogy irassam ki a megfelelő értéket.
(#) Balázs válasza elactrofan hozzászólására (») Ápr 25, 2016 /
 
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
(#) Balázs válasza Balázs hozzászólására (») Á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.
(#) elactrofan válasza Balázs hozzászólására (») Ápr 25, 2016 /
 
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
(#) Balázs válasza elactrofan hozzászólására (») Ápr 25, 2016 /
 
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.
(#) elactrofan válasza Balázs hozzászólására (») Ápr 25, 2016 /
 
2.046 jelentené a 100 való szorzást?
(#) Balázs válasza elactrofan hozzászólására (») Ápr 25, 2016 /
 
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
(#) RoliNyh válasza elactrofan hozzászólására (») Á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
(#) GPeti1977 válasza kameleon2 hozzászólására (») Á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?
(#) Droot hozzászólása Ápr 25, 2016 /
 
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.
(#) elactrofan válasza Balázs hozzászólására (») Ápr 25, 2016 /
 
Valamit biztos én rontok el.

  1. vin=analogRead(input);
  2. vin=vin/1023*5/18;
  3. Serial.print("fesz:");
  4. Serial.println(vin);


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?
(#) GPeti1977 válasza elactrofan hozzászólására (») Ápr 25, 2016 /
 
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);
(#) elactrofan válasza GPeti1977 hozzászólására (») Ápr 25, 2016 /
 
  1. int vin;
  2. float vins;
  3. int input=A0;
  4.  
  5. void setup()
  6. {
  7.   pinMode(input, input);
  8.   Serial.begin(9600);
  9. }
  10.  
  11. void loop()
  12. {
  13. vin=analogRead(input);
  14. Serial.print("be:");
  15. Serial.println(vin);
  16. vins=vin/1023*5/18;
  17. Serial.print("fesz:");
  18. Serial.println(vins);
  19. }


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
(#) atus1981 válasza elactrofan hozzászólására (») Ápr 25, 2016 /
 
Az A0-t összekötötted a VIN lábbal?
Meg nem úgy van, hogy
  1. float vins = vin/1023*5/18
?
A hozzászólás módosítva: Ápr 25, 2016
(#) GPeti1977 válasza elactrofan hozzászólására (») Ápr 25, 2016 /
 
Input védett szó ne használd változó névnek.
(#) elactrofan válasza atus1981 hozzászólására (») Ápr 25, 2016 /
 
Nem, nem is gondoltam rá.
(#) elactrofan válasza atus1981 hozzászólására (») Ápr 25, 2016 /
 
Hiába kötöm össza a vin és A0 lábakat.
A hozzászólás módosítva: Ápr 25, 2016
(#) Tetye válasza atus1981 hozzászólására (») Á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:
  1. int vin;
  2.     float vins;
  3.     int input=A0;
  4.      
  5.     void setup()
  6.     {
  7.       pinMode(input, input);
  8.       Serial.begin(115200);
  9.     }
  10.      
  11.     void loop()
  12.     {
  13.     vin=analogRead(A0);
  14.     Serial.print("adc:");
  15.     Serial.println(vin);
  16.     vins = vin / 204.6;
  17.     Serial.print("fesz:");
  18.     Serial.println(vins);
  19.     vins=vins/18;  
  20.     Serial.print("amp:");
  21.     Serial.println(vins);
  22.   delay(1000);  
  23.   }


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
(#) elactrofan válasza Tetye hozzászólására (») Ápr 26, 2016 /
 
Köszönöm a segítséget alakul csak még finomítanom kell.
(#) elactrofan válasza elactrofan hozzászólására (») Ápr 26, 2016 /
 
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.
(#) _BiG_ válasza elactrofan hozzászólására (») Ápr 26, 2016 /
 
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.
(#) k3gy3tl3n válasza Droot hozzászólására (») Ápr 26, 2016 /
 
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
(#) kapu48 válasza k3gy3tl3n hozzászólására (») Ápr 26, 2016 /
 
De ha belenéznél, az EEPROM üres!
Azt minek felül írni?
(#) k3gy3tl3n válasza kapu48 hozzászólására (») Ápr 26, 2016 /
 
Mindent úgy adok tovább ahogy kiolvastam Amúgy jogos a felvetés
Najó őszinte leszek bele se néztem mivel működött kapásból feltettem ide.
(#) Droot válasza k3gy3tl3n hozzászólására (») Ápr 26, 2016 /
 
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.
(#) elactrofan válasza _BiG_ hozzászólására (») Ápr 26, 2016 /
 
Esetleg egy példát tudnál nekem mutatni?
Következő: »»   216 / 856
Bejelentkezés

Belépés

Hirdetés
XDT.hu
Az oldalon sütiket használunk a helyes működéshez. Bővebb információt az adatvédelmi szabályzatban olvashatsz. Megértettem