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   586 / 839
(#) KoblogPerGyok válasza Massawa hozzászólására (») Jan 27, 2020 /
 
Azért az is okozhat problémát szerintem, de nem látjuk a dolgokat. Akkor lehet gond, ha az optokapus érzékelőid interrupt-okra van kötve, de a pl. a vevő dióda nyitáshoz elegendő áramot szed össze valahonnan nagy frekivel, és folyton a megszakítást hívja meg az Arduino-ban. Ez csak egy ötlet, lehet nem ez a gond, de szerintem megér egy próbát.

A másik, hogy a tápot meg tudod szűrni?

Csak kellene az a szkóp a végén...
(#) Massawa válasza KoblogPerGyok hozzászólására (») Jan 27, 2020 /
 
Megszakitás csak egy van benne ( igaz ez uj) ami az egyik LED kimenetet villogtatja, és teszi is - kivéve amikor a szervo megy. Azt még nem tudom, hogy akkor miért nem villog a LED de az nem fontos. Minden más sztatikus , a két optokapu egy egy bemenetre megy és csal olvasom az bemenet állását. Amikor megáll éppen az adott optokapu szakitotta meg korábban a motor mozgását és késleltetve inditotta a szervot. Az el is indult és meg is állt ott ahol kell. Ekkor jött egy 2 sec delay és indulnia kellene a motornak, de ez nem történik meg. ( elötte azonban legalább kétszer megcsinálta ez a ciklust.)
Holnap majd kiszerelem és ujra visszakötöm 5 V-ra amiröl eddig ment. Legfeljebb kell majd egy külsö stabit csinálni, mert a szerkezetben nincs 5 V, csak 12V.

Mennyit kellene annak a stabinak kibirnia ami az Arduino lapon van?
A hozzászólás módosítva: Jan 27, 2020
(#) vargham hozzászólása Jan 28, 2020 / 1
 
Nem használnám az arduino saját tápját. A GND-t csak egy pontban közösíteném, és jó minőségű DC-DC konverterrel hajtanám meg az MCU-t. A motorok felé pedig raknék védelmet is.
(#) Massawa válasza vargham hozzászólására (») Jan 28, 2020 /
 
Ma átépitem a tápellátást. Jobbnak nézett ki az Arduino stabija....
(#) devergo74 hozzászólása Jan 28, 2020 /
 
Sziasztok!
Adott egy Arduino Atmega 328P, ki szerettem volna próbálni a blink nevű programmal, de nem tudom megváltoztatni a led villogási sebességét. Csak az előre beállított módon villog a led, ez mitől lehet?
(#) Kera_Will válasza devergo74 hozzászólására (») Jan 28, 2020 /
 
A változtatást mivel , milyen úton végezted el?

Az átírt blink forrást visszatöltötted a uC-be?
A fordítás és feltöltés folyamatában milyen hibaüzenetet kaptál?
(#) devergo74 válasza Kera_Will hozzászólására (») Jan 28, 2020 /
 
Sikerült megoldani. Felajánlott egy alaplapfrissítést, és most már működik.
(#) Massawa válasza Massawa hozzászólására (») Jan 28, 2020 /
 
Na megoldottam. Valoban az Arduino lapon a stabi volt a gond. Külsö 5 V-rol hibátlanul megy minden.
(#) usane hozzászólása Jan 28, 2020 /
 
Üdv!

Kérdés, a softver serialt rá lehet-e konfigolni a harver serialra? (ESP8266)
Felállás: Van egy library amelyik konfigol egy softwareSerialt majd ezen küld parancsokat xyserial.read() and -.write. Ki lehet-e trükközni, hogy az ezek a parancsok a hardveres lábakat használják?
Hogy érthetőbb legyen van egy ilyen alap:
  1. #define xyser_RX 12
  2. #define xyser_TX 14
  3. SoftwareSerial softSerial(xyser_RX, xyser_TX);
  4. #define xySerial softSerial
  5. #define xySerialBegin(a) xySerial.begin(a)

A hardveres pedig az 1 és 3 pineken van.
(#) Kera_Will válasza usane hozzászólására (») Jan 28, 2020 /
 
Ezek a sorok mondják meg elvileg hogy melyik lábon melyik legyen a szoftveres soros portod RX/TX lábai.
  1. #define xyser_RX 12
  2. #define xyser_TX 14


Ezt rakhatod a hardveresre is , az mint digit port lesz hazsnálva , semmi más ekkor.
A mókaság abban lesz ha netán hardveresen is szeretnél még egy soros portot és erre definiálod a szoftverest is. Nem fog egyszerre menni.
(#) asch válasza usane hozzászólására (») Jan 28, 2020 /
 
Ha nem feltétlenül szükséges, hogy ez egy szoftveres megvalósítású legyen, akkor hardweresre is át lehetne írni kb így, az {uartnr} helyére beírva, hogy melyik HW uart indexet akarod használni:


  1. HardwareSerial hardwareSerial{uartnr}({uartnr});
  2. #define xySerial hardwareSerial{uartnr}
  3. #define xySerialBegin(a) hardwareSerial{uartnr}.begin(a)


Ha pedig a "fő" serialra akarod átírni, akkor csak enniyt is írhatsz, az objektumot nem kell létrehoznod sem, mert az arduino libek alapból adják:

  1. #define xySerial Serial
  2. #define xySerialBegin(a) Serial.begin(a)
(#) usane válasza asch hozzászólására (») Jan 28, 2020 /
 
Köszönöm. Így működik. Az objektumos létrehozással nem is megy a fő serial, kifagy.
(#) glaci hozzászólása Jan 29, 2020 /
 
Sziasztok!
Van egy arduino klon panelom nanino. Van egy usb uart hid ami a com4 porton van. Be
szeretném tölteni az arduino uno bootloadert de hibakóddal leáll. Az eszközök menüpont alaplap almenüben a genuino menüpont van bejelölve, a programozó almenüben az arduino isp.

Hogy kell beállítani a rendszert, hogy betöltődjön a bootloader.
A hozzászólás módosítva: Jan 29, 2020
(#) asch válasza glaci hozzászólására (») Jan 29, 2020 /
 
Link a termékre?

Biztos, hogy bootloadert akarsz betölteni? Gyárilag nem tettek rá bootloadert? Vagy te építetted, és gyári állapotú ATMega328P van rajta?

A bootloadert egy másik eszköz segítségével lehet feltölteni. Ameddig nincs bootloader rajra, addig az Arduino-t nem lehet USB-Uart-on keresztül programozni. Azt, hogy lehessen éppen a csippen lévő Arduino-s Bootloader teszi lehetővé.

A bootloadert az ISP headeren keresztül lehet feltölteni (GND, VCC, MISO, MOSI, SCK, RESET lábak vannak rákötve) A másik eszköz lehet valami AVR programozó, vagy egy Arduino, amire az ArduinoISP van rátöltve.

TLDR: Ahhoz, hogy egy ATMega328 csipre bootloadert tölts kell egy AVR programozó céleszköz, vagy egy másik Arduino, ami AVR programozóként működik az ArduinoISP programmot rátöltve.
(#) asch válasza glaci hozzászólására (») Jan 29, 2020 /
 
(#) wbt válasza glaci hozzászólására (») Jan 29, 2020 /
 
A bootloadert USB-n keresztül nem tudod feltölteni csak ISP-n keresztül. (ISP programozó vagy annak felprogramozott másik modullal).
(#) glaci válasza asch hozzászólására (») Jan 29, 2020 /
 
Igen.
(#) glaci válasza asch hozzászólására (») Jan 29, 2020 /
 
Szia!
Akkor szeretnék egy booloaderhez hozzájutni amit egy zombee féle stk500-al fel tudnék tölteni a nanino lapra.
(#) vargham válasza glaci hozzászólására (») Jan 29, 2020 /
 
Ott van az Arduino könyvtárban.
(#) glaci válasza vargham hozzászólására (») Jan 29, 2020 /
 
Szia!
Az avr->bootloders->optiboot könyvtárban?
(#) usane válasza asch hozzászólására (») Jan 29, 2020 /
 
Visszatérve a problémára.
A teljes kép a következő. Az ESP8266 NodeMCU hardveres serialra van kötve egy Nextion kijelző. A nextion library ezen küldi a parancsokat.(Nem néztem, hogy softwareserialra át lehet-e írni) Kitaláltam, hogy mi lenne, ha az ESP httpOTA a Nextion-t firmware-t is frissítené. Erre is van library, ez softwareseriallal megy alapból, ezt konfigoltam hardwareserialra. A softwareseriallal megy az update, de az másik ábakon van, a ardweressel gondolom nem tudom összehozni. Illetve lehet, hogy ha ki-be kapcsolgatom a hardverest és a szoftverest akkor megy ugyanonnan. Hardwareseriallal elindul az update, de 2-4%-nál lefagy és az ESP resetel. Először el sem indult, mert a debugos printf-ek közbeszóltak, azokat most kikommenteztem a saját kódomban, de nem tudom a 2-4%-os lefagyást mi okozza. A core librarykban elvileg nincs print, legalábbis tudtommal, de ki tudja. Mi okozhatja a hardwareserial esetében a lefagyást, illetve milyen megoldás jöhet szóba? A ki-be kapcsolgatást kipróbálom még.
A hozzászólás módosítva: Jan 29, 2020
(#) asch válasza usane hozzászólására (») Jan 29, 2020 /
 
Nem ismerem ezeket az eszközöket, gőzöm nincsen. Az innen-onnan összeszedett Arduino-s libekkel az a tapasztalatom, hogy ha az ember nem pont úgy használja, ahogy az eredeti készítő, akkor gond lehet velük. Általában nem lehet megúszni a kód végigbogarászását és az itt-ott belejavítgatást.

Én már csak kiindulási alapnak veszek Arduino-s libeket, de nagyjából mindent újraírok amit használni akarok, és végül nem Arduino-ként, hanem sima Makefile+avr-gcc+avrdude projektként fordítom és égetem.
(#) usane válasza asch hozzászólására (») Jan 29, 2020 /
 
Igen, majd nekem is az a szándékom, de még nemrég kezdtem az arduino IDE-t az ESP miatt. A problémára visszatérve, úgy tűnik valami baud rate probléma, 115200 baudon megy rendesen hardwareseriallal is 9600 baudon kifagy. Szóval próbléma megoldva. A 9600 úgyis csiga lassú. Ha tudom még feljebb is emelem.
(#) elektroncso hozzászólása Jan 29, 2020 /
 
Sziasztok!
Programozással kapcsolatos kérdésem lenne, mivel semmi köze konkrét elektronikához ezért nem találtam neki nagyon jobb helyet.
USB-n érkezik egy szám amit egy ARDUINO küld be, a szám 0-1023 közötti értéket vehet fel (a 10bit-es A/D kimenete). Ezt a számot a serial.println(valtozo) utasítással küldöm el és Processing3.4-el veszem. Ezt a számot nekem számként kéne kezelnem (matematikai műveletek ill. egy 1024 elemű tömb elem sorszámaként). Az addig rendben van, hogy a
  1. val=myPort.readStringUntil('\n');

-al beolvasom az érkezett adatot és eltárolom a val nevű változóba, de ezt string típusú, nekem meg integer típusra lenne szükségem. Az interneten kutakodva találtam a
  1. String a = val;
  2.   int i = int(a);
utasítást amivel elvileg át tudom alakítani, de a második sornál mindig
Idézet:
„NullPointerException”
hibakódot kapok.
Van valakinek tapasztalata Processingben (Java), tudna nekem segíteni?
Előre is köszönöm!

U.i.: Ha tudtok jobb helyet a kérdésemnek akkor áthelyeztetem oda az egészet.
A hozzászólás módosítva: Jan 29, 2020
(#) tbarath válasza elektroncso hozzászólására (») Jan 29, 2020 /
 
Nem \r\n jön az arduino-tól?
Nem null lesz a readStringUntil visszatérési értéke? Mert akkor jogos az Exception, vizsgáld!
  1. val=myPort.readStringUntil('\n');
  2. println(myString);
  3. if (myString != null) {
  4.       int i = int(a);
  5.       println(i);
  6. }
  7. else{
  8.       println("null jött");
  9. }

Egyébként a String a=val; fölösleges, a val gondolom szintén String típusú.
A hozzászólás módosítva: Jan 29, 2020
(#) Kovidivi hozzászólása Jan 29, 2020 /
 
Elektroncso kérdezett az off-ban, itt válaszolok neki.
Egy string az egy karaktertömb, aminek hossza van, lezárás a /0, ami 1 byte, ez az utolsó eleme. Én keresnék egy string to number fv-t google-lal. Ha le akarod programozni, akkor így kellene, nem tart sokáig: a stringet mint karaktertömb kezelve megszámolnám, hány számot tartalmaz, és szépen, egyesével összeadogatnám a számot megszorozva a helyiértékével. Tehát 5x1000+3x100+2*10+6=5326. Ha találsz kész fv-t, az is ugyanezt csinálja valószínűleg.
(#) asch válasza Kovidivi hozzászólására (») Jan 29, 2020 /
 
Elvileg a PC-n valami Java-szerű dolog fut (Processing). Javában ennyi az átalakítás decimális előjeles string számformátumról 32 bites előjeles számmá:

int i=Integer.parseInt(s);
A hozzászólás módosítva: Jan 29, 2020
(#) Kera_Will válasza Kovidivi hozzászólására (») Jan 29, 2020 /
 
A hozzászólás keretének jobbfelső sarkában van (#) jel ami aktív link ami pont magára mutat.
Tehát így lehet rá hivatkozni mert ki fog dobni egy másolható link hivatkozást.


Tehát OFF témában elektroncso kérdés felvetésére itt linkje:
Ez mutat az OFF topikos kérdésre
(#) Kovidivi válasza Kera_Will hozzászólására (») Jan 29, 2020 /
 
Miért linkeljem be, ha áthelyezik ide? Ha meg belinkelem, elveszted az értesítésket az offtopicból, nem fogod tudni, mit olvastál és mit nem...
Egyébként kösz a linket.
A hozzászólás módosítva: Jan 29, 2020
(#) elektroncso válasza asch hozzászólására (») Jan 29, 2020 /
 
Soha nem programoztam Java-ban, sőt valójában semmilyen nyelvben nincs tapasztalatom. Mostanában kezdtem kísérletezni a dologgal, mert különböző automatizált méréseket kéne összehoznom (csak hobbiból).
Fordítsuk meg a kérdést. Hogyan oldanátok meg, hogy egy Arduino-val mért feszültségszintet (ami a 10bit-es A/D miatt 0-1023 közötti értéket vehet fel) át kell küldeni számítógépre és ott (ez esetben Processingben) integer típusú változóban számként eltárolni.
Azért ragaszkodom a processzinghez, mert a beérkezett számokból grafikont ill. különböző görbéket kell rajzolnom a mérés végén, ezt pedig ebben könnyen meg tudom csinálni.

Jelenleg ez a kód van megírva a pc-n (netről ollóztam össze):
  1. import processing.serial.*;
  2.  
  3. Serial myPort;  // Create object from Serial class
  4. String val;     // Data received from the serial port
  5. String a;
  6. int i;
  7. int k;
  8.  
  9. void setup()
  10. {
  11.   // I know that the first port in the serial list on my mac
  12.   // is Serial.list()[0].
  13.   // On Windows machines, this generally opens COM1.
  14.   // Open whatever port is the one you're using.
  15.   String portName = Serial.list()[0]; //change the 0 to a 1 or 2 etc. to match your port
  16.   myPort = new Serial(this, portName, 9600);
  17. }
  18.  
  19.  
  20. void draw()
  21. {
  22.   if ( myPort.available() > 0)
  23.   {  // If data is available,
  24.   val = myPort.readStringUntil('\n');         // read it and store it in val
  25.   }
  26.   if (val != null){
  27.   i=Integer.parseInt(val);
  28.  
  29.   println(i);
  30.  
  31. }
  32. else {
  33.   println("hiba");}
  34. }

Valamiért nagyon széthúzza a fórummotor, a bevitelnél nincs ennyi üres sor.
A lényeg meg kimaradt, futtatáskor a 27. sorban
Idézet:
„Number Format Exception: For input String: "905"”

Hibakódot kapok. A 905 az az Arduino felől érkező szám.
A hozzászólás módosítva: Jan 29, 2020
Következő: »»   586 / 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