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   611 / 839
(#) tbarath válasza Massawa hozzászólására (») Márc 28, 2020 /
 
Köszi, majd belenézek. Mostanában úgyis keresek érdekes videókat elalváshoz, kb. semmit se érnek az ami late show-k mióta social distancing van...
(#) Kovidivi válasza Lac364 hozzászólására (») Márc 28, 2020 /
 
Pointer. Szép "kis" téma.
(#) lelkes amatőr hozzászólása Márc 29, 2020 /
 
Az itt felvetett probléma ma reggeli fejleménye: ha feszültség alá helyezem akkor van amikor 2-3, van amikor akár 10-15 ciklust is fut mielött leáll. Ekkor a reset gombot megnyomva elindul újra.
Innen kezdve lehet, hogy hardveresen van valami gondja?

CAM_0492.JPG
    
(#) szeg76 válasza lelkes amatőr hozzászólására (») Márc 29, 2020 /
 
Próbáld ki ezt: a loop-ban legalább 5 másodpercre kellene állítani a késleltetést.
A mellékelt AM2315 könyvtárban a readData() függvény legalább 5000ms időtartamot vár el két lekérdezés között, ha nincs meg, akkor false-ot ad vissza és végül a futás kilép a loop-ból, és lesz, ami lesz.

Továbbá helyezd át az Adafruit_AM2315 am2315; deklarációt a program elejére, mondjuk a LiquidCrystal_PCF... alá.
A setup-ban futtasd le az am2315.begin()-t és ha false-ot ad vissza, állj le hibával.

Módosítás: most látom, hogy a github-on levő kódban 2000ms van.
A loop késleltetését állítsd összhangba az általad használt AM2315 könyvtárral.
A hozzászólás módosítva: Márc 29, 2020
(#) lelkes amatőr válasza szeg76 hozzászólására (») Márc 29, 2020 /
 
Most ebéd készül, délután kipróbálom.
(#) icserny válasza lelkes amatőr hozzászólására (») Márc 29, 2020 / 1
 
1. A setup() függvényből kihagytad a Serial.begin(9600); parancsot, pedig nagyon kellene. Tedd vissza!
2. A hibavizsgálatból vedd ki a return; sort!
3. Utána nyisd meg a terminál ablakot, és figyeld, hogy jön -e valami hibajelzés! A terminál ablak figyelése annyival jobb az LCD-nél, hogy innen nem tűnik el a hibaüzenet programleálláskor.

Megjegyzés: Nem tartozik a hibajelenséghez, de a az LCD törlést tedd át közvetlenül a kiírás elé!
(#) djusee válasza lelkes amatőr hozzászólására (») Márc 29, 2020 /
 
Tiszteletem! I2C hajlamos rá hogy megakassza a programot ha gond lép fel a kommunikációban, itt (nemtudom azóta lett e valami javítás a kódban). A képen ahogy látom csavart vezetékkel van összekötve az I2C kijelző az Arduinóval ami szerintem nagyon nem jó mivel a csavart érpár a differenciális jeleknél előnyös, az I2C nem az és itt csak gondot okozhat. Az SCL, SDA vonalak gondolom rendelkeznek felhúzó ellenállásokkal(portbővítő modul).Nem tudom milyen gyakorisággal történik a kijelző frissítése, csak akkor kell frissíteni ha változik a kiírandó érték
A hozzászólás módosítva: Márc 29, 2020
(#) djusee válasza djusee hozzászólására (») Márc 29, 2020 /
 
Most nézem hogy a szenzor is I2C - n kommunikál, USB kábelon? Lehet hosszú a kábel, I2C- nél a csillag topológia sem jó. Próbáld rövidebb kábelokkal egyenlöre ha megoldható
(#) lelkes amatőr válasza icserny hozzászólására (») Márc 29, 2020 /
 
Ha van otthon piros filced, írj be magadnak egy piros pontot!
Kivettem a return sort, biztonság kedvéért betettem egy új késleltetést.
Az LCD törlést áthelyeztem. Most úgy néz ki, hogy megy.
Köszönöm.
(#) KoblogPerGyok válasza lelkes amatőr hozzászólására (») Márc 29, 2020 /
 
Tedd vissza a return sort!

Mi történik ekkor?
(#) zsoltee0001 hozzászólása Márc 29, 2020 /
 
Sziasztok
Van egy kód amit át akarok alakítani, de elakadtam.
A void setup után kapcsos zárójellel lezárja, majd jön egy ilyen sor:
  1. void sendNotification(String message){

Amit nem értek.

Az a gáz, hogy nekem a loop-ba kell áttennem egy részt, amit így nem ért.
Hogy tudnám elérni, hogy ez globálisan érvényes legyen?
(#) zsoltee0001 válasza zsoltee0001 hozzászólására (») Márc 29, 2020 /
 
ez lenne a teljes kód, az lenne a lényeg, hogy egy nyomógomb lenyomásával küld egy üzenetet Pusing boxra
  1. Arduino code example
  2. www.geekstips.com
  3.  
  4. - replace the dots with your Wi-fi credentials and
  5. - your deviceId from pushingBox account
  6. */
  7. #include <ESP8266WiFi.h>
  8.  
  9. // PushingBox scenario DeviceId code and API
  10. String deviceId = "vEE303C5BD48BC97";  // vEE303C5BD48BC97
  11. const char* logServer = "api.pushingbox.com";
  12.  
  13. const char* ssid = "-------";
  14. const char* password = "----------";
  15. int  buttonstate = 0;
  16. boolean elkuldve = 0;
  17. WiFiClient client;
  18.  
  19. void setup() {
  20.   buttonstate=0;
  21.   pinMode(D2,INPUT);
  22.   pinMode(D1,OUTPUT);
  23.   Serial.begin(74880);
  24.   // Sending a notification to your mobile phone
  25.   // function takes the message as a parameter
  26.   sendNotification("hello world");                                                      //*****************   ide jön az elküldendő szöveg     ****************
  27. }
  28.  
  29. void sendNotification(String message){
  30.  
  31.   Serial.println("- connecting to Home Router SID: " + String(ssid));
  32.  
  33.   WiFi.begin(ssid, password);
  34.   while (WiFi.status() != WL_CONNECTED) {
  35.     delay(500);
  36.     Serial.print(".");
  37.   }
  38.  
  39.   Serial.println();
  40.   Serial.println("- succesfully connected");
  41.   Serial.println("- starting client");
  42.  
  43.  
  44.  
  45.   Serial.println("- connecting to pushing server: " + String(logServer));
  46.   if (client.connect(logServer, 80)) {
  47.     Serial.println("- succesfully connected");
  48.    
  49.     String postStr = "devid=";
  50.     postStr += String(deviceId);
  51.     postStr += "&message_parameter=";
  52.     postStr += String(message);                                  //  ****************Pushingbox email body-ba megy : $message_parameter$ ez veszi fel a paramétert
  53.     postStr += "\r\n\r\n";
  54.    
  55.     Serial.println("- sending data...");
  56.   }
  57. }
  58.  
  59. void loop() {
  60.  
  61.   buttonstate= digitalRead(D2);
  62.   if ((buttonstate == HIGH) and (elkuldve ==0)) {
  63.       digitalWrite(D1,1);
  64.     client.print("POST /pushingbox HTTP/1.1\n");
  65.     client.print("Host: api.pushingbox.com\n");
  66.     client.print("Connection: close\n");
  67.     client.print("Content-Type: application/x-www-form-urlencoded\n");
  68.     client.print("Content-Length: ");
  69.     client.print(postStr.length());
  70.     client.print("\n\n");
  71.     client.print(postStr);
  72.   client.stop();
  73.   Serial.println("- stopping the client");
  74.   //buttonstate= LOW;
  75.   delay(500);
  76.   elkuldve=1;
  77.   digitalWrite(D1,0);
  78.   }
  79.   }
  80.   }
A hozzászólás módosítva: Márc 29, 2020
(#) zsoltee0001 válasza zsoltee0001 hozzászólására (») Márc 29, 2020 /
 
A
  1. client.print(postStr.length());

sornál hiba, nincs deklarálva.
(#) lelkes amatőr válasza KoblogPerGyok hozzászólására (») Márc 29, 2020 /
 
Korai volt az öröm, fél óra múlva ugyanúgy leáll.
Most visszatettem a returnt, nem változott semmi.
Kezdem azt hinni, hogy el kell engednem történetet.
(#) Massawa válasza asch hozzászólására (») Márc 29, 2020 /
 
Kösz, ma összeraktam ( majdnem teljesen) az uj számlálomat - még hiányzanak az optobemenetek de már uton vannak). Ugy néz ki elegendö lesz a loop verzio ( kiprobaltam az IRQ-t is) az idözités is elegendönek néz ki. ( most még az optobemenetek nélkül probáltam, igy korlatozva vagyok az 5V-l. A motoron meg 8 volt van ezért várnom kell. 5 V-s motorral szépen számlál.

Köszönöm, hogy segitettél!

Itt van még szétszedve.

IMG_4494.JPG
    
(#) icserny válasza zsoltee0001 hozzászólására (») Márc 29, 2020 / 1
 
A void sendNotification(String message){... stb. nem egy sor, hanem egy függvény (pontosabban eljárás), ami egészen a loop függvényig tart.

A postStr változót azért nem tudod a loop-ban használni, mert nem globálisan, hanem lokálisan van deklarálva. De hiába teszed át a String postStr kezdetű deklarációt a program elejére, attól még nem biztos, hogy lesz neki értelmes értéke.

Sajnos, fogalmam sincs, hogy mit akarsz kiküldeni a loop-ból, vagy miért nem a kiküldésre szánt sendNotofication függvénnyel küldöd ki (mint ahogy a setup is meghívja).
(#) Cooter hozzászólása Márc 29, 2020 /
 
Sziasztok!
Analóg bemeneten van egy fotoellenállás(egy 10K sorba) amivel egy TM1637 fényerejét szeretném szabályozni. Elvileg 0-7 között lehet az átkonvertált érték. Működik is, viszont az a gond, hogy határértéken, ugrál két érték között és "villog" a kijelző. Hogy tudom azt megcsinálni, hogy lefelé ne ugyanazon az értéken váltson, mint felfelé? (ezzel elkerülve a villogást) De más megoldás is érdekel.
(#) Kovidivi válasza Cooter hozzászólására (») Márc 29, 2020 /
 
Hiszterézist kell leprogtamozni, amihez két állapot tartozik. Ha lehet, ezt ne az egy számjegyű részen oldd meg, hanem ahol még 0-1023 közötti számmal dolgozol. Plusz ha időbeni átlagolás beiktatsz, szebb lesz az átmenet (mozgó átlag pl).
Biztos, hogy csak 0-7 közötti érteket vár a kijelző? Számomra elég kevésnek tűnik, ugrásszerű lesz a váltás.
(#) Cooter válasza Kovidivi hozzászólására (») Márc 29, 2020 /
 
Olvastam valahol hogy 0-7 között lehet. Nekem is furcsa volt, mert ha fix a háttérvilágítás akkor százalékba is elfogadja 10-100%-ig. Viszont ha 7-nél nagyobb számot írok be, akkor összevissza ugrál a fényerő, ráadásul véletlenszerűen nem kívánatos szegmensek villannak fel. Egyébként másik probléma, hogy a 7 fokozatot(ami a 100%) nem éri el. (potival a csúcson érte el, és olyankor is ugrál 6-7 között) A 7. fokozatot lentebb lehet húzni, hogy ne a csúcson legyen?
(#) icserny válasza Cooter hozzászólására (») Márc 30, 2020 /
 
A fényerőt szabályozó Command3 parancsa legalsó három bitje (B0-B2) szabályozza, tehát valóban csak 0-7 közötti értéket fogad el. A negyedik (B3) bit már a ki/bekapcsolást végzi.

Az automatikus fényerőszabályozást nem lesz könnyű összehozni, mert a szabályozás az alján fokozatonként duplázza a teljesítményt (a szem számára ez lineárisnak tűnik a változás), a magasabb fényerőnél viszont lineárisan változik (1/16-os lépésekben) a teljesítmény.
A fényérzékeny ellenállás karakterisztikája is érdekes, kétszer logaritmikus ábrázolásban lineáris, a 10 és 100 luxnál mért ellenállás hányadosának 10-es alapú logaritmusa 0.6 körüli érték (gamma paraméter).

command3.PNG
    
(#) zsoltee0001 válasza icserny hozzászólására (») Márc 30, 2020 /
 
Betettem globálisra és úgy néz ki, működik, köszi a tippet

Most még csak egy "hello world"-öt küldök, ami a setupba van, persze ezt még tovább fejlesztem, hogy külömböző körülmények esetén külömböző stringet küldjön emailos értesítés formájában.
(#) usane válasza asch hozzászólására (») Márc 30, 2020 /
 
Ja, hát ha specifikáljuk a vezérlőt akkor könnyű.
Ha pedig a kérdésre akarunk válaszolni akkor ez nem teljesen igaz, mert ugyanúgy beolvassa a teljes portot. Az más kérdés, hogy te nem használsz belőle csak 4 bit-et.
Viszont úgy látom, hogy megfelel neki a megoldsás, tehát gond egy szál se.
(#) Massawa válasza usane hozzászólására (») Márc 30, 2020 /
 
Rajtam ne kapjatok össze. Eddig nem tudtam, hogyan lehet az Arduino nyelvben beolvasni az egész portot (8 bitet) most már tudom, és az adott feladathoz elvben lényegtelen, hogy csak 4 bit vagy több érdekel a bemenetböl.
Épp most finomitottam a mérési eljáráson ( el kell dönteni mikortol számoljon, és meddig és mit irjon az LCD-re.) Minden már ugy megy, ahogy elképzeltem, s majd meglátom használat közben mi mindent kell majd változtatni, hogy értelmes adatokat kapjak.
Egyelöre azt teszi, hogy ha változik bármelyik bit a bemeneten számol. Ha egy bizonyos ideig nem változik, akkor a számolt lépéseket elmenti a felsö sorba, és az alsoban ujra várja a változásokat. Igy zárul a ciklus.,pillanatnyilag ez volt a célom, hogy ha 2-szer egymás után ugyannyit léptetek hogy valoban ugyannyi lépés megy ki a motorokra.
Most még várok a 4 csatornás optokra, sajnos az individuálisak nem férnek a dobozba, ezért kell az egytokos 4 csatornás cucc.
Kösz mindenkinek a segitséget. Ha valakit érdekel a kod, szoljon.
A hozzászólás módosítva: Márc 30, 2020
(#) usane válasza Massawa hozzászólására (») Márc 30, 2020 /
 
Dehogy kapunk össze. Örülünk, hogy segítettünk.
Csak azért írtam, mert az arduino IDE-vel manapság sokmindent lehet programozni.
A másik, hogy pl. én is jártam már úgy, hogy már készen volt a nyák, és utóbb derült, ki hogy máshogy kellett volna tervezni az IO portok miatt, és nem akartam új nyákot, vagy éppen valami miatt, (pl. kommunikáció) nem lehetett egy portra összegyűjteni a be/ki-meneteket. Ilyen esetben ez a megoldás sajnos nem nyerő.

Nálam is alkatrészre várakozás van. Ráadásul Kínából ki tudja mikor ér ide.
(#) asch válasza usane hozzászólására (») Márc 30, 2020 /
 
Szőrszálhasogatás, de ha belegondolsz, akkor amennyiben a folyamat időállandója nagyobb - ahogy esetünkben is, akkor ha két külön portról kell olvasni, az sem gond: Egyetlen órajel eltéréssel be tudunk olvasni két portot, és ez a kis időbeli elcsúszás semmilyen problémát nem okozna a számlálásban. Ha okozna, az eleve azt jelentené, hogy nem elég sűrű a leolvasásunk ahhoz, hogy a változásokat kövessük.
(#) Massawa válasza usane hozzászólására (») Márc 30, 2020 /
 
Én igy jártam ( söt rosszabbul) megterveztem egy NYAKot, egy 328-s modulra. Miután annak nincs JTAG csatlakozása egy másik modulon (azt hiszem 128-s proci volt azon) fejlesztettem a kodot ( ASM-ben) azzal, hogy a kettö kompatibilis, csak a 128-nak több portja van. Amikor beraktam a 328-s chipet derült ki, hogy a PC0 valojában csak akkor használhato, ha letiltom a resetet. Az viszont kizárja, hogy a kodon változtatni tudjak. Igy most mehetek vissza az eredetire, kizárni a PC0-t és egy másik portot használni. Persze emiatt modosithatom a NYÁKot is. És eltehetem a muzeumba a beprogramozott, de nem egészen jol müködö 328-st.
(#) usane válasza asch hozzászólására (») Márc 30, 2020 /
 
Nem annak szántam, és nem is a beolvasási idő a lényeg, hanem legtöbbször az együtt kezelhetőség.

Más kérdés?
Csinált már valaki FFT-t arduinoval? Konkrétabban ESP32 lenne nem arduino board. Megoldható vele egy 7-8 sávos audio spektrum analizátor, vagy inkább nézzek egy DSP-t? Azt tudom, hogy egy mezei kijön belőle, mert láttam már PIC18-ra is meg AVR-re is, de én nem fix sávokat szeretnék hanem testreszabhatót. Tetszés szerinti sávokkal és sávszélességgel, plusz a WS2812 LED-ek meghajtása is bele kell férjen. Ráadásul nem 8-10 LED magas oszlopokat szeretnék, hanem jóval többet, egyedien meghajtva egy nagyobb grafikai megjelenítéshez.
A hozzászólás módosítva: Márc 30, 2020
(#) Kovidivi válasza usane hozzászólására (») Márc 30, 2020 /
 
Van fast FFT könyvtár, nézegesd, az jó-e neked. A kapott adatokat úgyis neked kell feldolgoznod, akkora LED-oszlopot hajtasz meg, amekkorát csak akarsz.
(#) Kera_Will válasza usane hozzászólására (») Márc 30, 2020 /
 
Idézet:
„nem fix sávokat szeretnék hanem testreszabhatót”

Ennek ellenkezőjére van egy kész mono "célcsótány" ami soros vonalon beszélgeti ki az aktuális , saját egyedi sebességével, minta vett hang frekis jel spektrumát 7 egyedi sajátos sávban ,100-18kHz közt.Ezt kérdezgetheti a uC-el
A hozzászólás módosítva: Márc 30, 2020
(#) usane válasza Kera_Will hozzászólására (») Márc 30, 2020 /
 
Tudom, ebből több is van. Egy éppen teszt alatt az asztalomon (63-16kHz). Ez lesz a v1. Tesztüzemben már működik, (1 sáv - 1db SK6812 LED) és pár nap múlva menni fog valósan is, de ezt szeretném majd tovább fejleszteni a V2 verzióban .
Következő: »»   611 / 839
Bejelentkezés

Belépés

Hirdetés
Lapoda.hu     XDT.hu     HEStore.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