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   368 / 845
(#) sirbedevir válasza Kovidivi hozzászólására (») Júl 26, 2017 /
 
Köszi, azt hiszem teljesen igazad van.
A timerhajtotta belső megszakításos modul programja kész, működik, írok rá egy fapados digitalwrite - analogread programot, és összehasonlítom, mekkora a fáziszaj különbség kettejük között és melyik javára.
Köszi!
(#) gerleimarci válasza kapu48 hozzászólására (») Júl 26, 2017 /
 
Így nem fordul le
  1. Arduino: 1.6.12 (Windows 10), Alaplap:"NodeMCU 1.0 (ESP-12E Module), 80 MHz, 256000, 4M (3M SPIFFS)"
  2.  
  3. In file included from C:\Users\gerleimarci\Documents\Arduino\libraries\ESP8266WiFi\src/ESP8266WiFi.h:39:0,
  4.  
  5.                  from C:\Users\GERLEI~1\AppData\Local\Temp\untitled2018742904.tmp\sketch_jul24b\sketch_jul24b.ino:11:
  6.  
  7. C:\Users\gerleimarci\Documents\Arduino\libraries\ESP8266WiFi\src/WiFiClient.h: In instantiation of 'size_t WiFiClient::write(T&) [with T = char [20]; size_t = unsigned int]':
  8.  
  9. C:\Users\GERLEI~1\AppData\Local\Temp\untitled2018742904.tmp\sketch_jul24b\sketch_jul24b.ino:124:17:   required from here
  10.  
  11. C:\Users\gerleimarci\Documents\Arduino\libraries\ESP8266WiFi\src/WiFiClient.h:82:28: error: request for member 'available' in 'src', which is of non-class type 'char [20]'
  12.  
  13.      while (src.available() > WIFICLIENT_MAX_PACKET_SIZE){
  14.  
  15.                             ^
  16.  
  17. C:\Users\gerleimarci\Documents\Arduino\libraries\ESP8266WiFi\src/WiFiClient.h:83:7: error: request for member 'read' in 'src', which is of non-class type 'char [20]'
  18.  
  19.        src.read(obuf, WIFICLIENT_MAX_PACKET_SIZE);
  20.  
  21.        ^
  22.  
  23. C:\Users\gerleimarci\Documents\Arduino\libraries\ESP8266WiFi\src/WiFiClient.h:91:38: error: request for member 'available' in 'src', which is of non-class type 'char [20]'
  24.  
  25.      uint16_t leftLen = src.available();
  26.  
  27.                                       ^
  28.  
  29. C:\Users\gerleimarci\Documents\Arduino\libraries\ESP8266WiFi\src/WiFiClient.h:92:5: error: request for member 'read' in 'src', which is of non-class type 'char [20]'
  30.  
  31.      src.read(obuf, leftLen);
  32.  
  33.      ^
  34.  
  35. exit status 1
  36. Error compiling for board NodeMCU 1.0 (ESP-12E Module).
  37.  
  38. This report would have more information with
  39. "Show verbose output during compilation"
  40. option enabled in File -> Preferences.
(#) wbt válasza sirbedevir hozzászólására (») Júl 26, 2017 /
 
Bocsi, kicsit elúsztam... Ha nagyon pontosan kell időzítve mérni, akkor én mindenképp betennék egy S/H-t és akkor a timer HW kimenő jele zárja, akkor meg majd megmérem, amikor akarom, amikor odaérek. lehet, a konkrét feladatot tudni jobb lenne nekünk is. Anno, amikor ívhúzást kellett előre detektálnom, akkor szaladtam bele ilyen elvetemült dolgokba (ps-es komparátorok meg ilyenek...brrr)
(#) kapu48 válasza gerleimarci hozzászólására (») Júl 26, 2017 /
 
Probálkoz:
  1. Int = random(0,101);
  2. sprintf(str, "batt %d\n", Int);
  3. client.print(str);
(#) gerleimarci válasza kapu48 hozzászólására (») Júl 26, 2017 /
 
Így sikerült :
  1. #include <stdio.h>
  2. int randval;
  3. randval = random(0, 101);
  4. char str[3];
  5. sprintf(str, "batt %d\n", randval);
  6. client.print(str);

Köszi!
(#) kapu48 válasza gerleimarci hozzászólására (») Júl 26, 2017 /
 
De ez a terület foglalás nagyon kevés:
  1. char str[3];
  2.  
  3. Számoljál:"batt %d\n" "batt "+3 számjegy + \0 + \n
  4. Ez a string kb. 10 karakter. Nem férel 3 Byten!
  5. Az uttána következő változódat felül fogja írni!
A hozzászólás módosítva: Júl 26, 2017
(#) gerleimarci válasza kapu48 hozzászólására (») Júl 26, 2017 /
 
Igaz. Ha jól számolom, akkor 9 Byte, ha 1 karakter=1 Byte. Vagy hagyni kell rá?
(#) kapu48 válasza gerleimarci hozzászólására (») Júl 26, 2017 /
 
Szerintem: 5+3+1+1=10
Különben mindig felfele kerekítünk páros számra, a terület foglalásnál.
Mert az AVR mindig 2 vel osztható cimre tasszi a változókat.
A hozzászólás módosítva: Júl 26, 2017
(#) gerleimarci válasza kapu48 hozzászólására (») Júl 26, 2017 /
 
OK, így már világos.
Még egyszer, köszi!
(#) foto_dioda hozzászólása Júl 26, 2017 /
 
Hali Mindenkinek!
Az lenne a kérdésem hogy az normális ha az alap veszültség mérő programmal 1.4V értéket mutat a program? Teljesen "üresen" fut azaz semmi sincs rá csatlakoztatva a bemenetre.
(#) tbarath válasza kapu48 hozzászólására (») Júl 26, 2017 / 1
 
Ne haragudj, és off, de "báncsa" a szememet. Nincs se SoftWer se HardWer, de van software és hardware
(#) tbarath válasza sirbedevir hozzászólására (») Júl 26, 2017 /
 
Ez egy microcontroller, minden ASM utasítás ismert x idő alatt fut le. Ha kikapcsolod az interrupt-okat, akkor elvileg semmi se zavarhat be, már csak a megfelelő kódot kell megírnod.
Már ha az elvárt töredék us precizitás elérhető...
(#) tbarath válasza gerleimarci hozzászólására (») Júl 26, 2017 /
 
"request for member 'available' in 'src', which is of non-class type 'char [20]'"

egy char[20]-nak akarsz átadni egy nem char[20] értéket.
(#) tbarath válasza foto_dioda hozzászólására (») Júl 26, 2017 /
 
Teljesen normális is lehet egy specifikálatlan esetben, márpedig ez az.
A bemenet amúgy simán lebeghet...
(#) kapu48 válasza tbarath hozzászólására (») Júl 27, 2017 /
 
Ne haragudj, és off, de a "báncsa" bántja a magyart!
Esetleg a „bántsa, bántja” forma megfelelőbb lenne!
(#) tbarath válasza kapu48 hozzászólására (») Júl 27, 2017 /
 
Azért is tettem idézőjelbe
(#) sandor1632 hozzászólása Júl 28, 2017 /
 
Sziasztok!

Segítségeteket kérném egy feladat megoldásában.

Adott egy 12V dc motor H híddal hajtva, arduino pro minivel vezérelve.
Fel szereltem egy hall szenzort a motor ékszíjtárcsa mellé, a tárcsán van 4db neo mágnes 90°-onként.

A feladat az lenne, hogy ha a programban megadok egy fordulat értéket, akkor pwm jellel állítsa be a fordulatot, és figyelje a szenzoron keresztül. Ha terhelés hatására változik a fordulat, akkor koorigálja.

Kérem aki tud segítsen, mert beletört a fogam, nem hajlandó 3000 alá menni a fordulat, hiába határozom meg azt, hogy ha 450 rpm-nél több, akkor csökkentse a pwm jelet..

Előre is köszönöm!
(#) KoblogPerGyok válasza sandor1632 hozzászólására (») Júl 28, 2017 /
 
Add itt meg a kódot, anélkül nem megy.

Vagy kapcsolási rajzot, mert az is gond lehet.

Valamint 3000*4= 12 000 impulzus az arduino felé. 1/12 milisec() a kód maximális futási ideje, szerintem az gond.

Ha csak 1 mágnes, akkor is 1/3 milisec, ami nagyon kevés, az arduino nem ilyen gyors szerintem. (Persze lehet, hogy valami trükkel lehet gyorsítani a kódot.)

A másik, hogy ekkora tempónál mit ad ki a Hall szenzor?
A hozzászólás módosítva: Júl 28, 2017
(#) KoblogPerGyok válasza KoblogPerGyok hozzászólására (») Júl 28, 2017 /
 
Abba bele sem merek gondolni, mi van ha 3000-nél elszáll a tárcsáról az egyik mágnes!
(#) szeg76 válasza KoblogPerGyok hozzászólására (») Júl 28, 2017 /
 
3000 fordulat/perc nem a világ vége
(#) KoblogPerGyok válasza szeg76 hozzászólására (») Júl 28, 2017 /
 
ÁÁÁ!

Nekem az 1/s ugrott be a 3000-ről!
De igaz, az rpm beszédes!

ok, 60x több idő, de ekkor is 5 milisec. Talán elég, ha kompakt a kód.
(#) sandor1632 válasza KoblogPerGyok hozzászólására (») Júl 28, 2017 /
 
A 3000 a hiba, nekem max 150-es fordulat kéne.

A problémára most a netet bogarászva találtam működő megoldást, de nem jó.. mivel módosítanom kell a pwm frekit, hogy ne visítson a motor, ezért nem akar dolgozni a millis() függvénnyel való számolgatás.

Picit faragom a dolgot, utána feldobom amire jutottam.
(#) wbt válasza sandor1632 hozzászólására (») Júl 28, 2017 /
 
Kérdés, milyen gyors válaszidőt akarsz, tehát milyen gyorsan és mértékben változhat a terhelés. Vontatórendszernél sima P-szabályozót csináltam, azóta is megy, ott van idő, nem kell gyors szabályozás. Mondjuk egy plotternél meg olyan PID kell, hogy...nem is értem. Pedig a HP mérnökei 30 éve is megoldották. (1MHz-es 6502 proccal)
(#) KoblogPerGyok válasza sandor1632 hozzászólására (») Júl 28, 2017 /
 
ok!

150 menni fog simán!
( Ha kevesebb mint 100 milisec a kód futásigénye. )
(#) sandor1632 válasza wbt hozzászólására (») Júl 28, 2017 /
 
Pergető vezérlő lesz, nem veszett gyors a terhelés változás. 1-2 másodperc válaszidő lehet.
(#) wbt válasza sandor1632 hozzászólására (») Júl 28, 2017 /
 
Első lépésben határozd meg, hogy a bejövő sebesség értéked kb. milyen tartományba esik (ha gyors, akkor érdemes frekvenciát mérni, ha aránylag lassú, akkor periódusidőt, ez függ a jeladódtól is). Kényelmesen átszámolod mondjuk fordulatszámra (ezt a részt lehet optimalizálni, de maradjunk az olvashatóságnál). Próbaképp csak annyi, hogy ha a fordulatszám kisebb, mint ami kell, akkor PWM+1, ha nagyobb, PWM-1. (elég lesz 1 byte-os PWM is) Ha lassú a szabályozás, akkor szétválasztod pl. ha Sebesség-Elvárt> 10, akkor PWM+6. Igazából ilyenkor egy szabályozó idő/meredekség értékét állítod (akár több részbe is szét lehet szedni, ha különbség> 30, akkor PWM=PWM+23 pl.) Ez nagyon faék megoldás, de egyszerűen behangolható. Lehet ragozni, hogy pl. induláskor az alap PWM érték mindig 25-ről indul (hogy megmozduljon a motor). Ez a szenvedés azért kell, mert nem ismerjük a válaszidőket, tehát mekkora változásra, mennyi idő múlva, mennyit változik a rendszer.
Amikor belőtted, akkor végül,is csináltál egy PID szabályozót a rendszeredhez. Nekem rémlik, hogy Arduino alá mint ha lenne komplett PID...(nem foglalkozom vele, csak beugrott) Még arra kell figyelni, hogy ha a bejövő jelsorozat nagyon ritka, akkor STOP-nak vesszük (megszorult, nem indul) Nálam úgy volt, hogy a TIMER mérte a periódusidőt, ha átfordult, akkor STOP-nak vettem, mert nagyon ritkán jött (1 impulzusból nem tudhatjuk, mi az eredmény, mert a következő jöhet 1usec múlva vagy a jövő héten).
(#) sandor1632 válasza wbt hozzászólására (») Júl 28, 2017 /
 
Köszönöm segítséged!
Sikeredett megoldani. Picit még ugrál, mert másodpercenként mér sebességet, és 500ms-onként állít pwm értéket, emiatt van egy 15rpm-es szórás. De már túl fáradt vagyok befejezni..
(#) wbt válasza sandor1632 hozzászólására (») Júl 28, 2017 /
 
Fáradt? Most kezdődik az élet
Próbálj periódusidőt mérni, az sűrűbb eredményt ad.
(#) foto_dioda hozzászólása Júl 28, 2017 /
 
Hali ismét!
Egy kis segítség kellene.
Arduino Uno-hoz kötöttem egy IR LED-et és egy vevőt hozzá. A vevő jelét akarom mérni az analog bemeneten de az feszültséget tud mérni. Ebben tudna nekem segíteni valaki?
(#) tbarath válasza foto_dioda hozzászólására (») Júl 29, 2017 /
 
Mi a cél?
Ha távirányító jelét akarod venni, akkor inkább digit bemeneten próbáld, és van lib is hozzá.
Következő: »»   368 / 845
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