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   373 / 847
(#) KoblogPerGyok válasza Kovidivi hozzászólására (») Aug 9, 2017 /
 
Szia!

Ezt most nem értem, kifejtenéd?

Idézet:
„Úgy tűnik, nem olvasta az okfejtésem, miszerint 8 cellánál 100mV, 15cellánál már csak 200mV pontossággal tudnánk feszültséget mérni cellánként...”
(#) zosza18 hozzászólása Aug 9, 2017 /
 
Üdv Mindenkinek!
Van egy csodás SIM800L GSM modulom, ami a linkben található.
Ezt szeretném megéberelni egy egyszerű kóddal, hogy tudjon csörgetni, meg sms-t küldeni. Nem jutok vele dőlőre sehogyse és már nagyon ideges vagyok. AT parancsokkal megyen... hív is meg minden, de nem soroson keresztül akarom irsogálni, hogy mikor hívjon és mit küldjön... a példák nem mennek... úgyhogy kifogytam az ötletekből. Minden működik amúgy, csak a soros kommunikáció nélkül nem akar dolgozni a kis rohadék. Van valakinek ötlete, vagy esetleg használt-e már ilyet? Előre is köszönöm!

SIM800L modul
(#) berkesandor válasza zosza18 hozzászólására (») Aug 9, 2017 /
 
Hasonló dolog csinálok (ugyanezzel a modullal), milyen könyvtárat használsz?
(#) zosza18 válasza berkesandor hozzászólására (») Aug 9, 2017 /
 
SIM800l és SIM800L Library Revised
Ez a két könyvtáram van feltéve.
(#) berkesandor válasza zosza18 hozzászólására (») Aug 9, 2017 /
 
Magyarul el akarod altatni, és amikor használni akarod felébreszted, és hívsz vagy SMS-ezel?
(#) tbarath válasza Kovidivi hozzászólására (») Aug 9, 2017 /
 
Nem érted amit írtam, nem kellene 63V-ot bírnia. De mindegy is, az alkotó majd eldönti hogy mit akar, én nem erőltetem, csak leírtam amit gondoltam, és ha őt érdekli majd bővebben kifejtem.
A hozzászólás módosítva: Aug 9, 2017
(#) Kovidivi válasza tbarath hozzászólására (») Aug 9, 2017 / 1
 
Leírhattad volna konkrétabban is, hogy ne kelljen találgatni. Tehát leosztanád a 63V-nyi akksipakk minden celláját mondjuk 5V-os tartományba, tehát egy cella feszültsége 5/63-ad részre csökkenne, vagyis 4.2V helyett 0.33V-os lépés jelentene egy cellát. Ebből 15db adja ki az 5V-ot. Koblog most figyelj: ha 10bites ADC-vel mérjük ezt (tegyük fel, hogy az 5V atomatabil), akkor a legkisebb mérhető feszültség változás 5V/1024 lesz, vagyis 5mV. Ez normális cellafeszültségre visszaszámolva 63mV (ugye 5/63-ad arányban csökkentettünk, most növelni kell). Az ADC nem profi szerkezet, ingadozik. +-2 bit-tel simán számolhatunk mint legrosszabb eset, tehát a mért értékünk +-126mV-ra közelíti meg a cella valós feszültségét. Ez lehet akár 0.256V hiba is, nekünk ennél pontosabban kellene mérnünk. Ha tbarath ezeket az értékeket szeretné felerősíteni LM358-cal, akkor 8db IC kellene, hozzá pedig legalább 15x3db ellenállás (kalibrálásról még nem volt szó). A cellák feszültségét jó lenne 10mV pontosan mérni, ami itt, az 5V-os tartományban már csak 0.8mV lesz. Tekintve az LM358 3-6mV-os offset hibáját, nehéz lesz a dolgunk... Más IC-t lehet használni, de drágul az egész. Esetleg 16bit-es ADC-vel jutnánk előrébb, de a balanszoláshoz még minsig kelleni fog vagy 15 optocsatoló (ami lehetne akár a kommunikáció optoja is), vagy meg kell oldani 15x tranzisztorral és ellenállásokkal a szintillesztést.
A hozzászólás módosítva: Aug 9, 2017
(#) RoliNyh válasza vargham hozzászólására (») Aug 9, 2017 /
 
Itt a töltő, mint említettem elektromos kerékpár, Li-Ion -os akkuhoz való töltő, áramgenerátoros és feszültséggenerátoros funkcióval. És hidd el, töltöttem már pár cellát, tudom hogy kell őket tölteni.
A töltés ki és bekapcsolását a töltő elvégzi maga.
És én egy szóval nem említettem, hogy túltöltöm a cellákat. Épp azt mondtam, amint a cellafeszültség eléri a 4.2V -ot valamelyík cellán, a hozzá tartozó SLAVE eszköz bekapcsolja a balanszálási funkciót, így az adott cellán nem alakulhat ki nagyobb feszültség, szoftverből lesz benne némi hiszterézis,
ami pl 4.0V -nál meg kikapcsolja a balanszálást. A folyamat pedig addig folytatódik, míg a töltő úgy ítéli, hogy elég kis áram folyik és kikapcsol...
A hozzászólás módosítva: Aug 9, 2017
(#) RoliNyh válasza tbarath hozzászólására (») Aug 9, 2017 /
 
A 3-5 cellás balanszer kevés 15 cella balanszálásához, és nem tudom, hogy lehet -e azokat sorba kötni. Egy 15 cellás 30A -es BMS pedig kb 40$, és ez még az adatgyüjtést nem oldja meg, tehát az plussz költség. A leosztott feszültségű arduinos analóg bemenetre kötött cellamérőt azért vetettem el, mert a legalsó cella mérése lenne így a legpontosabb, viszont a legmagasabb cella mérése pedig már sokkal rosszabb felbontással működne, tehát pontatlanabb lenne...
(#) RoliNyh válasza wbt hozzászólására (») Aug 9, 2017 /
 
Én inkább attól tartok, hogy a soros kommunikáció két arduino között nem csak egy irányba történik. Pl ha a MASTER küld valamit, akkor a SLAVE visszafele is küld valamit...
Szóval ha a MASTER küld, és egyszerre 15 SLAVE kezd el visszanyugtázni (és itt most nem arról az adatokról beszélek, amit a szoftverből küldök vissza), akkor lőttek a pont multipont topológiájú soros adatátvitelemnek...

Ezért kérdeztem, hogy konkrétan szoftveresen hogy is zajlik a két eszköz közt az adatfolyam?
(#) Kovidivi válasza RoliNyh hozzászólására (») Aug 9, 2017 /
 
Ha szoftveres soros portot használsz, akkor azt csak módosítani kell, hogy működjön. akár egyéni protokollt is kifejleszthetsz, hosszú-rövid fel-le húzásokkal küldhetsz adatot, a végén egy ellenörző összeget. Az is lehet, hogy az egyik Attiny automatikusan küld adatot, amit lát a többi, innetől tudja a 2., hogy neki kell küldenie, és így tovább. A mesternek meg se kell szólalnia, csak hallgatnia. Ha az első nem küld 2mp-en belül semmit, automatikusan ad a 2, és hibát jelez a mester is. Az adat lehet ilyesmi is. 2-es vagyok, 3.74V, 31dokC, balanszolás nem aktív, ellenörző összeg:xxx, hármas folytassa. Ezután jön a 3., és ugyanezt elmondja. Nincs nyugtázás, csak adás. Miért is kellene a mesternek a szolgákhoz szólnia? Mindegyik tudja mi a dolga.
(#) zosza18 válasza berkesandor hozzászólására (») Aug 9, 2017 /
 
Nem nem!
Jelenleg csak teszt lenne sms-re és hívásra. Majd ezután beleásom magam kicsit és kialakítom a saját kedvemre.
Altatás kilőve... egyszerűen áramtalanítom és ha kell visszakapcsolom. Ez a tuti áramfogyasztás.
(#) berkesandor válasza zosza18 hozzászólására (») Aug 9, 2017 /
 
SMS-t tudok vele küldeni, ha írok neki válaszol is (csak az én számomra válaszol), de nem tudom rávenni hogy hívást indítson. "NO CARRIER" hibát ad.
https://github.com/VittorioEsposito/Sim800L-Arduino-Library-revised...endSms
Ez a példa alapján küldök, ez működik nálam.
Milyen paranccsal indítasz hívást?
(#) zosza18 válasza berkesandor hozzászólására (») Aug 9, 2017 /
 
Nekem ezzel semmit nem csinál, nem hogy sms-t.
Milyen formátumba kell a számot megadni?
Én soros porton adom neki az AT parancsokat... azzal hibátlan, míg az ilyen progikkal nulla.
(#) berkesandor válasza zosza18 hozzászólására (») Aug 9, 2017 /
 
number="3630491xx63";
Ez az enyém.
(#) zosza18 válasza berkesandor hozzászólására (») Aug 9, 2017 /
 
Ha ez szivat...
(#) RoliNyh válasza Kovidivi hozzászólására (») Aug 9, 2017 /
 
Nem tudom jól fogalmaztam -e.
Tulajdonképpen én a hardveres soros portról beszélek, tehát pl az arduino nanon az 1-es TX, és a 2-es RX lábak. Az attiny85 -ön meg tegyük fel, az 5 -ös és 6-os lábak, bár ott valami uart van vagy mi a fene, konkrétan nem is tudom melyík annak a "hardweres" soros TX és RX port lábai. Én csak azért az 5 RX és 6 TX lábat választottam erre, mert más projektben azt láttam, hogy ezt a két lábat használják. De én akárhány attiny85 pinoutot megnéztem, egyiken sem láttam konkrétan TX és RX lábakat, szóval nem is igazán vagyok vele tisztába, hogy is megy ez, és miért pont ezt a két lábat használják. Persze az is lehet, hogy más lábakat is használhatnak, de én ezt találtam...

A kommunikációval kapcsolatban pedig arra vagyok kíváncsi, hogy konkrétan hogyan is működik.
Tegyük fel, a mester adni készül, (mintha úgy olvastam volna), hogy ez úgy történik, hogy a TX lábát alacsony szintre állítja, ez a start bit, és várja, hogy a drót másik végén lévő eszköz ugyanezt megtegye, tehát a szolga eszköz is alacsony szintre állítja a TX lábát, a mester ebből tudja, hogy küldheti az adatot. Ha viszont a mester nem érzékeli meghatározott időn belül, hogy a szolga alacsonyra állította volna a TX lábát, akkor a mester ismét magasra állítja a TX lábát, és bizonyos idő mulva megkísérli az adást ismét, ami szintén a start bittel kezdődik, ahogy az előzőekben leírtam...

Szóval erről ha tudnátok adni valami magyar dokumentációt, hogyan is zajlik ez az nagyon jó lenne...
A hozzászólás módosítva: Aug 9, 2017
(#) kissi válasza RoliNyh hozzászólására (») Aug 9, 2017 / 1
 
Szia!

Esetleg ez : Bővebben: Link ?!
A hozzászólás módosítva: Aug 9, 2017
(#) RoliNyh válasza kissi hozzászólására (») Aug 9, 2017 /
 
Ez elsőre jó is lesz...
(#) zosza18 válasza berkesandor hozzászólására (») Aug 9, 2017 /
 
Hát nem!
(#) berkesandor válasza zosza18 hozzászólására (») Aug 9, 2017 /
 
Nem megy?
(#) zosza18 válasza berkesandor hozzászólására (») Aug 9, 2017 /
 
Sehuva se. Totál halott. Nem értem meg esküszöm.
(#) berkesandor válasza zosza18 hozzászólására (») Aug 9, 2017 /
 
Próbáld meg visszaállítani az eredeti beállításokat a sim modulban, ATZ paranccsal.
A setup-ban ezek vannak nekem:
  1. GSM.println("AT+CMGF=1");
  2.  GSM.println("AT+CNMI=1,2,0,0,0");


Én most így vagyok a hívás indítással, nem akar menni.
Még azt nézd meg nincs nincs-e , azonos nevű (eltérő tartalmú) .h fent az arduino-ba, mert az is tud tréfás lenni.
A hozzászólás módosítva: Aug 9, 2017
(#) wbt válasza RoliNyh hozzászólására (») Aug 9, 2017 /
 
T85-ben nincs USART csak USI egység, ami 8-bites SPI. Mondjuk, 7-bites UART-nak épp használható lenne kifelé, de befelé nem, mert órajel vezérelt. Az általános soros nem bit, hanem byte-orientált, tehát a Startbit+adatbitek+Stopbit alkot egy frame-et. Ha kell kézfogásos üzemmód, akkor az vagy egy byte kiadása vagy külön hardver jel. Tehát kiadsz egy megszólító üzenetet és vagy jön válasz, vagy nem. Startbit idő alatt nem fog visszaszólni senki, várakozás meg meddő dolog, mert ha van egy startbited és utána sok 1-es, akkor az egy szabvány 0xFF adatot jelent kifelé. T85-nél a teljes soros üzenetet programból csinálják, tehát bármelyik láb lehet TX, RX meg (ajánlott) olyan, ami tud megszakítást kérni. Persze saját szabványt kitalálhatsz ezret, én is ácsoltam speciális célra furcsaságokat.
(#) Bakancsok hozzászólása Aug 9, 2017 /
 
Sziasztok!

Automata ajtónyitót csináltam DC motorral és végálláskapcsolókkal ami a fényerőre vált.

A problémám az, hogy néha ugál 2 érték között a fényerő, így meg megbolondul az egész. Van valakinek valami ötlete, hogy hogyan tudnám ezt kiküszöbölni?

  1. int motorPin1 = 2;
  2. int motorPin2 = 3;
  3. int delayTime;
  4. int feny1;
  5. int feny;
  6. int nyitva_kapcsolo;
  7. int zarva_kapcsolo;
  8.  
  9. void setup() {
  10.  
  11.   Serial.begin(9600);
  12.   pinMode(motorPin1, OUTPUT);
  13.   pinMode(motorPin2, OUTPUT);
  14.   pinMode(10, INPUT_PULLUP);
  15.   pinMode(11, INPUT_PULLUP);
  16. }
  17.  
  18. void loop() {
  19.  
  20. feny1 = analogRead(0);
  21. feny = map (feny1, 0, 1023, 0, 40);
  22. zarva_kapcsolo = digitalRead(10);
  23.   nyitva_kapcsolo = digitalRead(11);
  24.   Serial.print ("Nyitva_kapcsolo: ");
  25.   Serial.print (nyitva_kapcsolo);
  26.   Serial.print ("   ");
  27.   Serial.print ("Zarva_kapcsolo: ");
  28.   Serial.print (zarva_kapcsolo);
  29.   Serial.print ("   ");
  30.   Serial.print ("Fenyero: ");
  31.   Serial.print (feny);
  32.   Serial.println ("   ");
  33.  
  34.   if (zarva_kapcsolo == LOW && 5 > feny )  { //zaras
  35.     digitalWrite(motorPin1, HIGH);// 1
  36.     digitalWrite(motorPin2, HIGH);
  37.   }
  38.   if (zarva_kapcsolo == HIGH && 5 > feny)  { //zaras
  39.     digitalWrite(motorPin1, LOW);//1
  40.     digitalWrite(motorPin2, LOW);
  41.   }
  42.   if (nyitva_kapcsolo == HIGH && 6 < feny)  { //nyitas
  43.     digitalWrite(motorPin1, LOW);//1
  44.     digitalWrite(motorPin2, HIGH);
  45.   }
  46.   if (nyitva_kapcsolo == LOW && 6 < feny)  { //nyitas
  47.     digitalWrite(motorPin1, LOW);//1
  48.     digitalWrite(motorPin2, LOW);
  49.   }
  50. }
(#) gerleimarci válasza Bakancsok hozzászólására (») Aug 9, 2017 / 1
 
Vigyél bele egy kis hiszterézist(nagyobb értéknél nyisson, kisebbnél zárjon, mint a jelenlegi) és szerintem próbáld ki ezt a libet, én szívesen használom analóg bemenetek zajszűréséhez.
(#) tbarath válasza Kovidivi hozzászólására (») Aug 9, 2017 /
 
Én egyértelműnek gondoltam, sajnálom hogy nem voltam az, csak épp rohantam.

És nem az lm358 a lényeg, hanem az elv. Tehetsz bele 4x OPA4317-et pl, vagy valami más low offset opampot. Kalibrálni természetesen kell, de ezt csinálhatod akár sw-ből is, mérsz multival, ezt összehasonlítod az ADC-ből kapottal, aztán megállapítod hogy mennyit csal.
És igen, kell még mellé a 4 opa mellé 45 ellenállat is, és más passzív is jó eséllyel, de a másik módszerrel kell mellé kell 14 uC és 2x14 opto is, valamint mint a 15 uC-nek egymástól független táp. Szerintem ez a nehezebb út.
(#) Bakancsok válasza gerleimarci hozzászólására (») Aug 9, 2017 /
 
Köszönöm, holnap kipróbálom.
(#) Kovidivi válasza tbarath hozzászólására (») Aug 9, 2017 /
 
Miért kellene külön táp? Leírta már Roli, hogy ez egy akkupakk töltő, figyelő. Minden uC az akksiról megy, külön-külön celláról.
(#) RoliNyh válasza wbt hozzászólására (») Aug 9, 2017 /
 
Jól van, saját szabványt eszemben sincs kitalálni hozzá. Jó az, hogy karaktert küldök át...
Következő: »»   373 / 847
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