- Milyen asztali (teljes vagy fél-) gépet vegyek?
- AMD Ryzen 9 / 7 / 5 7***(X) "Zen 4" (AM5)
- AMD K6-III, és minden ami RETRO - Oldschool tuning
- Bluetooth hangszórók
- Azonnali fotós kérdések órája
- Raspberry Pi
- Szünetmentes tápegységek (UPS)
- Nem indul és mi a baja a gépemnek topik
- AMD Navi Radeon™ RX 9xxx sorozat
- Házi barkács, gányolás, tákolás, megdöbbentő gépek!
-
PROHARDVER!
Arduino hardverrel és szoftverrel foglakozó téma. Minden mikrovezérlő ami arduinoval programozható, és minden arduino program, board, és hardverrel kapcsolatos kérdések helye.
Új hozzászólás Aktív témák
-
ghostie
tag
válasz
FireKeeper #3299 üzenetére
Pont az a bajom, hogy használható ismeretekkel nem rendelkezem. Elméletben tanultam/olvasgattam már a témáról, de gyakorlati tapasztalatok alapján nem áll össze a kép. Pl. az meg van hogy tranzisztor: bázis, kollektor, emitter, pnp meg npn meg hasonlók, illetve hogy kondenzátor töltést tárol, de nem tudok ezekből alap áramköröket összehozni (nem csak gyakorlatban, elméletben sem tudnék felrajzolni semmi működőképest).
Rendeltem egy Aruinos kezdőcsomagot, pár ezer forint volt és küldtek egy szatyor alkatrészt, amiben még LCD kijelző, RFID-s olvasó, infravevő, távirányító és hasonló érdekességek is vannak.
Ezzel szerintem hónapokig ellennék, amíg mindent kipróbálok, összedugok, de arra gondoltam hasznosabb lenne ha előtte egy kicsit megismerkednék az alapokkal. Pl. hogy a gyakorlatban is lássam, hogy miért is kell ellenállást kötni a LED-del sorosan, illetve valóban értsem és ne csak tudjam, hogy mit és miért csinál a felhúzó ellenállás.Egy ilyen alap "kitnek" a költsége már minimális lehet, összehasonlítva a jóval bonyolultabb alkatrészeket tartalmazó Arduino csomagéval. És "károkozás" szempontjából is jobb lenne, ha a füstölős próbálkozásaim a néhány forintos alkatrészekben tennének kárt és nem az Unoban
Általános iskolások számára találtam már ilyen tanuló készleteket, de így 40 évesen már inkább valós ellenállást szeretnék a kezembe fogni és nem egy színes kis rudat
Az Arduino másik oldalával a programozással nincs problémám, évek óta programozok különféle nyelveken így az a rész tiszta és könnyen tanulható.
-
FireKeeper
nagyúr
válasz
ghostie #3298 üzenetére
nem akarom letörni a lelkesedésedet, de ahelyett, hogy rögtön nekiugrasz dolgokat megvenni, összedugdosni, meghajtani, jó esetben nem felrobbantani, nem lenne egyszerűbb/olcsóbb az elméletnek utánanézni? vagy az neked túl száraz? azt meg lehet kérdezni hogy most milyen szintű elektronikai ismeretekkel rendelkezel?
-
ghostie
tag
válasz
gyapo11 #3297 üzenetére
Igen, pontosan valami ilyesmire lenne nekem is szükségem (Arduinotól függetlenül), amiben ki tudom próbálni mondjuk a különféle tranzisztorok működését, vagy összerakni egy kondenzátoros villogó áramkört, tudom változtatni a paramétereket az alkatrészekkel és ez által megismerhetem az elektronikai alapokat.
Ez valóban egy alacsonyabb szint mint az Arduinos legózás, de a kettő együtt adná ki nekem azt, hogy képes vagyok egy problémára elektronikus megoldást összerakni.
Ebayen nézelődtem már de ott inkább kész projektekre találtam ilyen készleteket. -
gyapo11
őstag
Az arduino programozása egy dolog, de a be/kimenetek illesztése a külvilághoz már egy másik, az elektronika. Egy egyszerű leg meghajtása is már probléma lehet, ahogy ez itt a fórumon is történt. Szóval egyáltalán nem árt elektronikát tanulni.
Tégen volt a janelpanel, egy csomó féle, zacskóban minden szükséges alkatrész, kapcsolási rajz. Most inkább csak könyvet találok.
A Conrad boltban is érdemes szétnézni.
Az ebayen is rá lehet keresni a diy kit-re, vannak találatok.
Az igazi oktatós, részletes magyarázattal ellátott készletek nem tudom kaphatók-e valahol. -
Sokimm
senior tag
válasz
ghostie #3295 üzenetére
Elektronikai alapismeretek nélkül feleslegesnek látom az ilyen készletet (magamból indultam ki), mivel az arduino átlagosan csak egy legónak tekinthető, mindaddig, míg nem neked kell az elektronikai részéhez hozzányúlni (kivéve egy egy alkatrész cseréje, egy potméter bekötése, egy gomb-led bekötése). De az itt felsorolt lista nem igényel ilyen elektromos kezdőcsomagot. Az ardunio az felnőtt legó (szerintem), összerakod, írsz (vagy ollózol a netről) hozzá egy kódot, majd nézed és örülsz a végeredménynek. Ha ez elég stabilan megy (és mélyebb szinteket is megérintesz, akkor mélyülhetsz akár elektormos irányban, akár kódolás irányában (nem netről lopott include-okkal játszol), de ez még az elején nem igényel semmi mást, csak az alappanelt, meg a cél hardvereket, amilyen irányba készíted a projekted. (szerintem!)
Természetesen ez egy magánvélemény, lehet tévedek (bátran javítsatok ki), de pár poti, led, előtét-ellenállás, lehúzó ellenállás (amit majd ha utánanézel, rájössz, hogy milyet vegyél) és kész is a "kezdő elektronikai kiegészíő pack".
-
ghostie
tag
Sziasztok,
Nem közvetlenül Arduinos a kérdésem, de azért kapcsolódik hozzá
Nemrég találkoztam ezzel az eszközzel és maga a koncepció nagyon megtetszett, viszont elektronikai alapismeretekkel nem igazán rendelkezem. Rendeltem egy Arduino kezdőcsomagot amiben elég sok minden van amivel lehet kísérletezni, erről jött az ötlet, hogy létezik-e valamilyen elektronikai kezdőcsomag, amivel Arduinotól függetlenül lehetne próbálkozni a próba panelen. pl. tranzisztor, dióda, kondenzátor, mosfet meg más alapalkatrészek különböző típusokban egybecsomagolva.
Ha rákeresek egy-egy konkrét típusra, akkor találok belőle ebayen, aliexpresszen 50-100-as csomagokat fillérekért, de nekem inkább egy tanulásra összeállított alkatrészcsomagra lenne szükségem.
Létezik ilyen, találkozott már valaki ilyesmivel?
Köszönöm
-
whYz
őstag
Akkor ha jol gondolom eleg lenne egy ilyet vennem es ehhez csatlakoztatni az adafruit PN532-t SPI-vel (I2C nem mukodik a ATSAM21-el).
ATWINC1500 mukodik low power modban is, igy ez a problema is meg lenne oldva.Abban esetleg tud valaki segiteni, hogy a adafruit PN532-t hogyan kossem ossze a Feather M0-val?
-
soldi3r
veterán
A Nimbits.com-ra mar nem lehet regisztralni?
-
Gergosz2
veterán
válasz
Janos250 #3290 üzenetére
Ezt most abszolút nem tudom hova tenni.
A ESP csak HTML kódokat küld a kliens felé, ott a böngészője értelmezi azt. Mellesleg a NodeMCU-t is elég felesleges csak erre tartani, mert jól megcsinálták a kivezetéseit. Pont ezekkel szívok, mert állandóan wdt resetet kapok, ha az SPI-ra fűzött NRF24L-t működésre akarom bírni.
Pap és papné esete.
Nem , ez nem az. Egyszerűen értsd meg, hogy low power-ben még mindig az RF a nyerő, a wifi most kezd feljönni hozzá. Amíg egy ESP 500mA-et bezabál 3v3-on addig nincs miről beszélni.
-
Janos250
őstag
válasz
Gergosz2 #3288 üzenetére
Gergos2 és tvamos!
Pap és papné esete.
A WiFi chip használata során a vezérléshez html kódú WEB lapot írunk. A html-t majdnem minden második ember ismeri, és elég stabilan állja az idők próbáját.
A többi meg minden programban ugyanaz, mivel a kész osztálydefiníciókat használjuk.Egy hevenyészett példa:
ESP8266WebServer amiNevetSzervernekValasztottam(80);
void ezthajtsdVegreHaGyokerbeLepek() {
String teendo = amiNevetSzervernekValasztottam.arg("macska");
if (teendo == "ehes"){
//adj enni a macskanak
}else if (teendo == "nyugos"){
//simogasd meg
};String WEBlapKodja = "<html>\r\n";
WEBlapKodja += "<!DOCTYPE HTML>\r\n";
.......ide írjuk be, a WEBlap részeit: gombokat, linkeket, miegymast
WEBlapKodja += "</html>\n";
amiNevetSzervernekValasztottam.send(200, "text/html", WEBlapKodja);
}void setup(void)
{WiFi.mode(WIFI_AP); // AccessPoint
WiFi.softAP("amiNevetWiFiSSDnekValasztok","hozzaJelszo"); // SSID, pw.
amiNevetSzervernekValasztottam.begin(); // start the HTTP serveramiNevetSzervernekValasztottam.on("/", ezthajtsdVegreHaGyokerbeLepek); // megadjuk, melyik fuggveny hajtodjon vegre, ha rootba lepek
}
void loop(void)
{amiNevetSzervernekValasztottam.handleClient(); // ez mindig ez
}
bongeszobe beutni:
http://192.168.4.1/?macska=ehes (ha nem változtattam meg az IP-t, hanem az alapertelmezettet hagytam)Vagy ha megírom hozza tagfuggvényt:
http://192.168.4.1/masikfeladat?villany=lekapcsAkkor kell még:
amiNevetSzervernekValasztottam.on("masikfeladat", ezthajtsdVegreHamasikfeladat);
void ezthajtsdVegreHamasikfeladat() {String teendo2 = amiNevetSzervernekValasztottam.arg("villany");
if (teendo2 == "lekapcs"){
//kapcsold le a villanyt
};String WEBlapKodja2 = "<html>\r\n";
WEBlapKodja += "<!DOCTYPE HTML>\r\n";
.......ide írjuk be, a WEBlap2 részeit: gombokat, linkeket, miegymast
WEBlapKodja2 += "</html>\n";
amiNevetSzervernekValasztottam.send(200, "text/html", WEBlapKodja2);
} -
Gergosz2
veterán
válasz
Janos250 #3287 üzenetére
ha szétszedsz otthon egy 2.4 Ghz-es egér/billentyűzet mellé szánt USB dongle szinte biztos, hogy egy nrf24l lesz benne.
Wifis megoldás is vezérlő függő mert van belőlük millió fajta kint amiket milliófajta képpen lehet programozni. Jó dolog, hogy van ez az arduino core ESp modulokra de ez közel sem jelenti azt, hogy mindegyiket így kell programozni.
-
Janos250
őstag
válasz
Gergosz2 #3283 üzenetére
Ízlés kérdése. Mindenkinek a saját szempontjai alapján kell dönteni.
Én azért pártolom a WiFit, mert az sokkal általánosabb, gyakoribb mint a többé-kevésbé egyedi RF chipek. Egy WiFis megoldásban szerzett gyakorlat biztosan nem válik holt tudássá évek múltával sem. Sokkal több WiFis chipet használnak a világon, mint az egyéb RF megoldásokat. Attól még persze lehet használni a spéci RF chipeket is, ha valakinek az a szimpatikusabb, vagy van valami oka, hogy az ő alkalmazásában azt használja. -
Gergosz2
veterán
válasz
FireKeeper #3285 üzenetére
igen, csak rossz helyre írom állandóan azt az f-et
-
FireKeeper
nagyúr
-
Gergosz2
veterán
Személy szerint én nem így állnék hozzá. Alapból ezek a wifis cuccok elég sokat fogyasztanak, szóval vagy fixen viszel oda egy tápkábelt, vagy elég sűrűn cserélgetsz elemet. Pl NodeMCU alapjáraton 500mA-peres tápot kér(Van ilyenen itthon, de még nem igazán sikerült a DUE-ra írt progimat portolnom rá.)
Az ajtóra tennék egy pro minit+nr24lf kombót. Az előbbit 1,2$ körül kapod meg, az utóbbit is. De ami jó, hogy alvóba elküldve egy elemről egy évet simán üzemel, de egy kis HW módosítás kell hozzá. Emellett meg lenne egy master modulod, amin lenne egy Wifi/ethernet shielded és már neten is vannak az infók.
-
Janos250
őstag
-
whYz
őstag
válasz
Janos250 #3277 üzenetére
Koszi a segitseget.
Akkor most rendelek egy ilyen ESP8266 ESP-12F-et es meglatjuk mit tud.
Egy ilyen nfc shieldem van. Probalom rabirni androiddal valo kommunikalasra, de meg nagyon az elejen vagyok. Ezzel kapcsolatban nem tudsz valami dokumentaciot? Mert neten eleg keves forrast talaltam.
-
Janos250
őstag
Genuino 101-et nem ismerem, nem akartam Intel irányba elmenni, én az ARM irányt céloztam meg, pl:
http://www.ebay.com/itm/STM32F103C8T6-ARM-STM32-Minimum-System-Development-Board-Module-For-Arduino-/291693366485?hash=item43ea478cd5:g:74YAAOSwZ8ZW5jfe
[link]
és hasonlók, azokkal nagyon kellemes tapasztalataim vannak.Én az ESP-t (ESP12-E, NodeMcu Lua, és ez: http://www.ebay.com/itm/Hot-ESP8266-ESP-12E-WIFI-Wireless-Dev-Board-for-Arduino-IDE-UNO-WeMos-D1-F7-/222050036152?hash=item33b336a9b8:g:qaoAAOSwxp9W4pIk [link] ) kedvelem, mert önmagában egy komplett, jó teljesítményű 32 bites Arduino is.
A soros vonala tapasztalatom szerint megbízhatóan működik, így - elvileg - gond nélkül együtt kell működnie a 101-el is.
Pár példány van belőlük, az oktatás során sem sikerült egyet sem kinyírni a félév során. :-)nfc shoeldet nem ismerem.
RFID-ként a következőt próbáltam (Mifare):
http://www.ebay.com/itm/Mifare-RC522-RFID-13-56Mhz-Module-Wireless-Module-ICSH008A-/351374091757?hash=item51cf8725ed:g3AAAOSwGXtXgLbM [link]
Ez - elvileg - nagyon kényelmes, mert mindent elintéz a rajta lévő proci, ha egy tag (pl. kártya) közelít hozzá, folyamatosan ismételgetve küldi soros vonalon a kártya ID-jét.
Ez az elv, mert nekem támadtak vele gondjaim, aztán ez is a fiókba került, amikor sürgősebb dolgok kerültek elő (a már írt ESP hőmérséklet mérés). Azóta még nem vettem elő.
3V-on működik, rajta van egy fesz. szab. , ezért 5 V-al kell megtáplálni, de a soros vanal 3V-os. A korábbi változatokon volt egy LED, közvetlenül az 5V-ra kötve. No ez általában elfüstölt, azóta az újabbakon csak a helye van.
Nekem volt amikor működött, de volt amikor nem. Van hozzá egy "gyári" tesztelő program, én is azt (is) használtam, de a NET szerint az észreveszi, ha nem eredeti a dolog, és kinyírja a prociban lévő firmware-t, tehát újra kell tölteni.
Na, ez még nálam nem került sorra. Van szűz példányom is, idő hiányában még a fiókban. Azt nem próbálom ki a teszt programmal, csak simán olvasom majd az adatait a soroson, remélem megy.Ez meg egy régebbi, de kész könyvtárakkal - állítólag - jól programozható, stabilan működik. Nekem még a fiókban van, nem próbáltam. :
http://www.ebay.com/itm/RC522-Mifare-Card-Read-Antenna-RF-Module-RFID-Reader-IC-Card-Proximity-Module-/172229986397?hash=item2819b5085d:gGEAAOSwvg9XUupm [link]
-
whYz
őstag
válasz
Janos250 #3275 üzenetére
Koszi szepen az infot.
Szerinted mukodhet egy ESP8266 egy Genuino 101-al vagy vegyem akkor meg a teljes boardot es hasznaljak csak azt onmagaban? Genuino 101 mar megvan, igy legszivesebben azt hasznalnam, meg szeretnek egy nfc shieldet is racsatlakoztatni ha lehet.
Itt pl valakinek nem mukodott, de mast nem nagyon talaltam rola. Lehet egyedi eset.
-
Janos250
őstag
Hasonlót.
Mióta (1-2 éve) beillesztették az ESP8266-ot is az Arduino sorba, hogy ne csak AT parancsokkal lehessen programozni, ezek a célszerűbbek:
[link]
vagyÉn mindkettőt használom, meg vagyok velük elégedve.
Pl. hőmérséklet szenzort olvas, WEB szerverként konfiguráljuk és mobiltelefonról böngészővel olvassuk az értéket.
Az ESP8266 chip önmagában Arduino is, jobb paraméterekkel, mint számos egyéb Arduino lap.
Tehát nem kell külön WiFi shield.
Gyors, nagy memória, szerintem egyetlen hátránya a kevés I/O láb.
Arduinoként C-ben, C++-ban programozható, nagyon jó kész könyvtárak vannak hozzá.
32 bites proci. -
hermit
tag
Sziasztok,
csinalt mar valaki adruinorol arduinora bootloader frissitest (ami utan normalisan mukodott a wdt)?
-
whYz
őstag
Sziasztok
Nem tudjatok, hogy a WiFi Shield 101-et valahogy be lehet szerezni EU-ban?
Ha azt szertnem ellenorizni, hogy egy ajto nyitva van-e, akkor milyen kiegeszitore lesz szuksegem?
-
bear_
aktív tag
Probléma megoldva, a gagyi USB kábel volt a hibás.
Viszont belefutottam egy újabb problémába:
Natúr C nyelven szeretnék programokat írni, és addig okés is, hogy feltöltöm a hex filet, viszont hiába van magasszinten a kimenet, alig világítanak a ledek. Az előtétellenállások jók, az arduinoban írt progival tökéletesen világitanak. Mi lehet a gond? -
bear_
aktív tag
Sziasztok!
Windows 10 alatt nem tudom flashelni az UNOmat. XP alatt tökéletesen működik. Tud valaki rá mogoldást?
-
-
Teasüti
nagyúr
válasz
FireKeeper #3257 üzenetére
Éppen a barkácsolást szeretném elkerülni. Vmi kifinomult, helytakarékos, csinos megoldást keresek. Nem olyat amit baltával faragtak.
Mint pl egy biciklis km óra, csak vezetéken.
Létezik ilyesmi MCU-hoz? -
Beggar
csendes tag
Sziasztok!
Már napok óta küzdök egy menüszerkezettel arduinoval, sehogy sem akarja a végleges formát ölteni. Eljutottam odáig, hogy a menüben már lehet mászkálni, de a kiválasztott almenü értékét nem tudom módosítani, kiolvasni memóriából rendesen. Ha valakinek van egy kész ötlete, azt is szívesen fogadom.A menü szerkezete így néz ki:
"Input Select"-
|- TV
|- Media Player
|- Instrument
|- Aux 1
|- Aux 2
Equalizer-
|- Bass (értéke lehet 0-63)
|- Treble (értéke lehet 0-63)
|- Balance (értéke lehet 0-63)
|- Loudness (értéke 0-1)Az én megoldásom részben a következő:
#include <EEPROM.h>
#include <LiquidCrystal.h>
char* main_menu[] = {" Input Select ", " Equalizer "};
char* menu_items[2][6] = {
{" TV ", " Media Player ", " Instrument ", " Aux 1 ", " Aux 2 ", " Exit "},
{" Bass ", " Treble ", " Balance ", " Loudness ", " Exit " }
};
const int btn_up_pin = 9;
const int btn_down_pin = 8;
const int btn_enter_pin = 7;
const int btn_esc_pin = 6;
//const int backlight = 10;
const int lcd_contrast_pin = 11;
const int lcd_power_pin = 10;
const int backlight_value = 0;
// memoria címek ---------
const int addr_volume = 0;
const int addr_inp = 1;
const int addr_equ_0 = 2;
const int addr_equ_1 = 3;
const int addr_equ_2 = 4;
const int addr_equ_3 = 5;
// -----------------------
int on_menu = 0;
char* menu_item = "";
char* main_itme = "";
char* sub_item = "";
int main_menu_counter = 0;
int main_counter = 0;
int sub_menu_counter = 0;
int sub_counter = 0;
int volume_counter = 0;
int temp_value = 0;
int btn_up = 0;
int btn_down = 0;
int btn_enter = 0;
int btn_esc = 0;
long action_timer = 0;
LiquidCrystal lcd(13, 12, 5, 4, 3, 2);
void setup() {
Serial.begin(9600);
pinMode(btn_up_pin, INPUT);
pinMode(btn_down_pin, INPUT);
pinMode(btn_enter_pin, INPUT);
pinMode(btn_esc_pin, INPUT);
pinMode(lcd_contrast_pin, OUTPUT);
pinMode(lcd_power_pin, OUTPUT);
//analogWrite(backlight, backlight_value);
lcd.begin(16, 2);
on_menu = 0;
}
char mem_read(int mainmenu, int submenu = 0){
int ret_val = 0;
char ret_temp;
if(mainmenu == 0 && submenu == 0){
ret_val = EEPROM.read(1);
}
if(mainmenu == 1 && submenu == 0){
ret_val = EEPROM.read(2);
}
if(mainmenu == 1 && submenu == 1){
ret_val = EEPROM.read(3);
}
if(mainmenu == 1 && submenu == 2){
ret_val = EEPROM.read(4);
}
if(mainmenu == 1 && submenu == 3){
ret_val = EEPROM.read(5);
}
return ret_val;
}
void loop() {
btn_up = digitalRead(btn_up_pin);
btn_down = digitalRead(btn_down_pin);
btn_enter = digitalRead(btn_enter_pin);
btn_esc = digitalRead(btn_esc_pin);
if(on_menu > 0){
digitalWrite(lcd_power_pin, HIGH);
digitalWrite(lcd_contrast_pin, LOW);
}
if(on_menu == 0){
digitalWrite(lcd_power_pin, LOW);
analogWrite(lcd_contrast_pin, 254);
}
if(menu_item == " Exit ") {
if(on_menu == 1){
menu_item = "";
main_menu_counter = 0;
sub_menu_counter = 0;
on_menu = 0;
}
if(on_menu == 2){
menu_item = "";
sub_menu_counter = 0;
on_menu = 1;
}
}
if(on_menu == 1){ // -------------------------------------------------
if(btn_up == HIGH && on_menu == 1){
if(main_menu_counter < ((sizeof(main_menu)/2)-1)){
main_menu_counter++;
delay(250);
}
}
if(btn_down == HIGH && on_menu == 1){
if(main_menu_counter > 0){
main_menu_counter--;
delay(250);
}
}
lcd.setCursor(0,0);
lcd.write(main_menu[main_menu_counter]);
lcd.setCursor(0,1);
lcd.write(" ");
if(btn_enter == HIGH && on_menu == 1){
menu_item = main_menu[main_menu_counter];
main_counter = main_menu_counter;
on_menu = 2;
delay(250);
}
} // #################################################################
if(on_menu == 2){ // -------------------------------------------------
if(btn_up == HIGH && on_menu == 2){
if(sub_menu_counter < ((sizeof(menu_items[main_counter])/2)-1)){
sub_menu_counter++;
delay(250);
}
}
if(btn_down == HIGH && on_menu == 2){
if(sub_menu_counter > 0){
sub_menu_counter--;
delay(250);
}
}
lcd.setCursor(0,0);
lcd.write(main_menu[main_counter]);
lcd.setCursor(0,1);
lcd.write(menu_items[main_counter][sub_menu_counter]);
if(btn_enter == HIGH && on_menu == 2){
menu_item = menu_items[main_counter][sub_menu_counter];
sub_counter = sub_menu_counter;
on_menu = 3;
delay(250);
}
} // #################################################################
if(on_menu == 3){ // -------------------------------------------------
lcd.setCursor(0,0);
lcd.write(menu_items[main_counter][sub_counter]);
lcd.setCursor(1,1);
temp_value = mem_read(main_counter, sub_counter);
lcd.write(temp_value);
//lcd.write(" ");
} // #################################################################
if(on_menu == 0){
//analogWrite(backlight, 0);
lcd.setCursor(0,0);
lcd.write(" Home Amplifier ");
lcd.setCursor(0,1);
lcd.write(" ");
if(btn_enter == HIGH && on_menu == 0){
on_menu = 1;
delay(250);
}
}
if(btn_esc == HIGH){
menu_item = "";
main_menu_counter = 0;
sub_menu_counter = 0;
on_menu = 0;
}
Serial.print("on_menu: ");
Serial.print(on_menu);
Serial.print(" lcd_power_pin: ");
Serial.print(digitalRead(lcd_power_pin));
Serial.print(" temp_value: ");
Serial.print(temp_value);
Serial.println("");
delay(50);
} // loop endElőre köszönök minden nemű segítséget!
-
FireKeeper
nagyúr
válasz
Teasüti #3256 üzenetére
szerintem olcsóbban és egyszerűbben kijössz vele ha valami vízálló dobozkán vágsz rést egy sima karakteres LCD-nek és beragasztod (vagy ha nem is közvetlen az LCD-t ragasztod, akkor valami üveget/átlátszó műanyagot, és mögé a kijelzőt, vagy keresel valami ablakos dobozt). továbbá erre olyan gombokat tudsz rakni amilyeneket szeretnéd. el kell vele szüttyögni, de meg lehet szépen igényesen csinálni, még ha olyan nem is lesz amivel kiállításokra mész
-
Teasüti
nagyúr
Karakteres lcd-ből ismer vki olyan terméket, ami időjárásálló készülékházzal rendelkezik?
Az se volna baj, ha volna rajta 3 gomb, amit így vagy úgy el lehet érni MCU-val.
Adatbuszra megy vagy GPIO-ra az mindegy.
Szét kerestem az ebay-t, de vagy nem találom a megfelelő szavakat, vagy nincs.
Köszi! -
kmisi99
addikt
válasz
Teasüti #3254 üzenetére
Majd a következő lépcső lehet az lesz. Igazából én pont az összerakás és technikai oldalával vagyok jobban kapcsolatban. 5 éven át próbáltak belém programozást erőszakolni, mindenki elbukott. Egyszerűen az gondolkodásmódom nem való erre, mintha egy pap kapna bordélyházba állásajánlatot.
De persze érdekel, meg tökre örülök, hogy most a szervót is sikerült bele rakni a programba.
-
Teasüti
nagyúr
válasz
kmisi99 #3253 üzenetére
Gondolom ezért vettél Arduino-t, hogy ezen változtass.
Hamar bele lehet jönni, ha foglalkozol vele. Nekem két-három hét volt, mire az analfabétából eljutottam oda, hogy önállóan írok sketch-eket az Uno-ra.
Inkább az elektronikai része, amivel nem fejlődök.
A hardvernél még mindig csak breakout board-okkal legózok.
(Nem mintha ez nem lenne elég a projektjeimhez.)
A szoftverrel sokkal könnyebb dolgozni.Amúgy Play-en láttam már BT-s kontroller app-okat Arduino-hoz, miért nem szerzel be egy olyat, ami analóg irányítást is tud?
A programban van PWM vezérlés mindkét tengelyre, illetve az egyik tengelyt szervóra átírni se nagy kunszt.
A többi csak annyi, hogy hozzáigazítod a vezérlő bájtokat az app-hoz.
De talán még példa programokat is találni mellé.
És/vagy keresel egy kevésbé primitív tutorialt rc autóhoz.
Ez a 8 irányú digitális irányítás már 20 évvel ezelőtt is gagyi volt. -
kmisi99
addikt
válasz
Teasüti #3252 üzenetére
Programozási analfabéta vagyok, de tényleg sikerült! Bár szerintem eléggé "csöves" módszerrel oldottam meg. Ugye megnyomom a balra gombot akkor balra megy de ott is marad, ezért beállítottam, hogy az előre gomb megnyomásával középállásba rakja a szervót. Köszönöm a segítséget, már annyira túl akartam bonyolítani ezzel egész jól meg lett oldva. Mert maga a program kicsit korlátolt, egyszerre csak egy gombot lehet lenyomni benne.
-
Teasüti
nagyúr
-
kmisi99
addikt
válasz
Teasüti #3250 üzenetére
Hoppá! Valóban, a hozzá lévő androidos program már úgy működik ahogy kell! Köszönöm!
Már csak egy dolgot nem tudok, és ez a legnagyobb problémám. Az a helyzet, hogy az eredeti projektben amit találtam az autó kanyarodásáért motor felelős így a programban is ez van. . Viszont nálam ez szervó lesz. De fogalmam sincs hogyan tudnám ezt beleírni. Nekem annyi is elég lenne, hogy a turn right nál elfordítja jobbra 60 fokkal a leftnél balra 60 fokkal.
-
Teasüti
nagyúr
válasz
kmisi99 #3249 üzenetére
Valszeg akkor az app se 9600 baud rátával stream-el ezek szerint.
Ha jól vettem ki a kódból, akkor a PWM az nem csak egy sebesség szabályzó? Vagyis egyszer beállítod a csúszkát vagy nem tudom mi van az app-ban, aztán azzal a sebességgel megy a kocsi az iránygombokra.
Látni kéne az alkalmazás API-ját is, hogy ez jó legyen.Amúgy a linken amit adtál van pár hivatkozás és eljutottam ide:
Próbáld ki ezt!
Persze az eredeti kóddal. -
kmisi99
addikt
válasz
Teasüti #3248 üzenetére
Köszönöm a segítséget így valóban úgy funkcionál ahogy kell, viszont a delay-t egészen 20ms ig kellett emelnem, hogy egyáltalán bírjon gurulni normálisan, de így is nagyon darabos. A PWM értékeknél meg nem látok delay-t amit emelhetnék, van a végén egy ilyen delay(time_ms); meg egy ilyen, delay(delay_ms);
De ezekkel nem tudom mit kezdhetnék. -
Teasüti
nagyúr
válasz
kmisi99 #3247 üzenetére
Tudni kéne hozzá hogy működik az alkalmazás.
Amíg nyomod a gombot, addig ismétli ezerrel a parancsot, vagy csak egyszer küldi ki a nyomva tartás ellenére?
Esetleg megpróbálhatod kicserélni a loop()-ot erre:void loop(){
int i = 0;
if (Serial.available()) {
processInput();
}
else stop_Robot();
delay(1);
}Ha ismétli a parancsot az alkalmazás - 9600 baud - amíg nyomva tartod, akkor asszem ez jó lehet.
Ha akadozik a kocsi, akkor a delay értékét lehet növelni picit, bár ha jól gondolom 1 ms-ba bele kéne férjen digitális irányítással a vezérlő karakter + delimiter. PWM vezérlésnél szintén érdemes lehet növelni a delay-t egy-két milliszekundummal, hogy beleférjen minden karakter.Illetve ha nem ismétli a parancsot az alkalmazás, akkor... passz. Akkor az alkalmazást kell rávenni, hogy küldje ki a stop_Robot() parancsot, mikor elengeded a gombot.
-
kmisi99
addikt
Heló! Nem tudom mennyire bonyolult a kérdésem, programozni nem tudok, csak letöltöttem a kódot és összeraktam a bluetoothos távirányítású autómat. Na most az a gondom, hogy a program úgy működik, hogy amint megnyomom pl az előre gombot akkor az addig megy előre míg nem nyomok meg egy másik irányt. Viszont én úgy szeretném, hogy ha elengedem a gombot akkor nem megy tovább.
Ez volna a kód. [link]
-
Janos250
őstag
válasz
Daszkalosz19 #3244 üzenetére
"Show verbose output during compilation
enabled in File > Preferences."Ha ezt bejelölöd, több mindent kiír, azt is, hogy hol keresi.
Ha nem ott, ahol van, akkor másold be oda (is) -
Daszkalosz19
aktív tag
Sziasztok!
volna egy kis problémám. Van egy dht22 hőmérséklet és páratartalom érzékelőm,amit bekötöttem és egy programkódom hozzá. Tökéletesen működött tegnapig. Még el is volt mentve sketch-be
Arduino: 1.5.7 (Windows 8), Board: "Arduino Mega or Mega 2560, ATmega2560 (Mega 2560)"
sketch_jun29a.ino:1:17: fatal error: dht.h: No such file or directory
compilation terminated.This report would have more information with
"Show verbose output during compilation"
enabled in File > Preferences.Pedig a dht könyvtár benne van. Már újra telepítettem az arduino progit,de ugyan azt írja mindig
A programkód!
#include <dht.h>
#define dataPin 8
dht DHT;
void setup () {
Serial.begin(9600);
}
void loop() {
int readData = DHT.read22 (dataPin);
float t = DHT.temperature;
float h = DHT.humidity;
Serial.print ("Temperature = ");
Serial.print (t);
Serial.print (" *C ");
Serial.print ( " Humidity = ");
Serial.print (h);
Serial.println (" % ");
delay (1000);
}Valaki tud segíteni benne?
-
soldi3r
veterán
válasz
norbert1998 #3241 üzenetére
Arrol lehet a legegyszerubben vezerelni a motorokat, pl. De ettol olcsobban is kaphato levalasztokartya.
-
soldi3r
veterán
válasz
norbert1998 #3239 üzenetére
Azt lehet direkt a controllelre kotni, STEP/DIR-es.
(Meg 1 lepes es eljutunk a nyomtatoportig)
-
norbert1998
nagyúr
A CNC shield ötletét elvetettem, kevés ide. Ingyen jött, megy a süllyesztőbe. TB6600 lesz helyette, viszont azt shield-re nem tudom kötni, a kérdésem az lenne, lehetséges lenne-e valahogy (nemigazán találtam róla infókat
) Xmax, Xmin, Ymax, Ymin, Zmax, Zmin érzékelőket kötni rá, hogy a GRBL homing cycle-je boldoguljon vele?
CNC shield-en voltak ilyenek, de anélkül, simán Arduino-val és TB6600-kkal, nem igazán tudom
Előre is köszi
-
hermit
tag
Helyesen: ha rajt az ethernet, akkor NEM latszik a programjabol.
Ha ugy teszem ra ethernetet, hogy csak az egyik oldalon es kozepen erintkeznek labai, akkor elindul a mega.
Ha pedig ugy, hogy a masik olda es kozepen ernek hozza az ethernet labai, akkor csak a piros ledig jut el.
Nincs itt mega/uno tulaj Szhelyrol vagy a kornyekrol? Kivancsi lennek hogy egy masik eszkozzel is ezt csinalja-e az ethernet, vagy esetleg a megan rossz vmi... -
Teasüti
nagyúr
64 byte jobban mondva, elgépeltem.
A Serial.available() pont arról szól, hogy megnézi mennyi van a pufferben.
Na most én azt hinném teljesen mindegy mikor olvasom ki a puffert, adat nem veszhetne el, csak overflow esetén. Nem így van? A fogadás meg megszakítással megy, szóval ezen sincs nagyon mit dolgozni.
A baud rate meg kb mindegy, mert overflow nem fordul elő, a kiolvasás meg több menetben történik amíg megjön az EOL karakter is a puffer-be.
Vhogy ez mindig meg szokott jönni, ez még egyszer se veszett el az éterben.Szóval nem tudom mi a frász van ezzel.
Ha esetleg a bluetooth hibázik, de a Serial.write() viszont nem hibázik egyáltalán.
Meg az a furcsa még, hogy a program feltöltés USB-n lényegesen gyorsabb, BT-n elszöszöl akár 20 másodpercig is. Pedig elvileg ugyanaz a baud rate mindkettőn - 112500 a bootloader sebessége. -
soldi3r
veterán
válasz
norbert1998 #3233 üzenetére
A vezerlorol.
-
soldi3r
veterán
válasz
norbert1998 #3222 üzenetére
Mekkora sebessegre es gyursulasra kepes? Max jittert lehet nezni? Mekkora frekin dolgozik?
-
Teasüti
nagyúr
Na de mi az, hogy a programom épp mást csinál?
Ez hardveres UART, a fogadás már alapból megszakítással működik (USART_RX_vect?).
Ott kéne figyelnie a 60 bájtos pufferben, amíg a Serial.read() ki nem olvassa bármit is fogad bármikor.
A soros kommunikáció amúgy nem full duplex?(#3225) Gergosz2
Mi okból?
Pont az volna a cél, hogy a programfutás ne akadjon meg semmilyen várakozás miatt és mivel a loop() gyorsabb lehet a kommunikációnál, ezért a while(SErial.available() > 0) ha jól értem minden loop() ciklusban kiüríti a Serial puffert a message[] tömbbe és ez addig ismétlődik, míg a newMessage flag nincs beállítva az egyik feltétellel.
Hol a hiba a gondolatmenetben?Amúgy egy delay(1) pl. nem segített a hibán a Serial.read() előtt.
-
tvamos
nagyúr
válasz
norbert1998 #3228 üzenetére
Pontosan hogy taplalod? Ugye az Arduinot usb-rol!
-
tvamos
nagyúr
válasz
norbert1998 #3222 üzenetére
Mi az a cnc pajzs?
-
zka67
őstag
válasz
Teasüti #3223 üzenetére
Szia, az adás és a vétel is ugyan azzal a sebességgel megy, ugye? Nos, amikor jön egy CR vagy egy LF karaktered, akkor te kiíratsz 3 karaktert. Amíg a programod azzal van elfoglalva, hogy megvárja amíg elküldi a 3 karaktert, ezalatt neked jöhet még 3 karaktered, amit nem tudsz kiolvasni, mert a programod épp mást csinál, és ezek a karakterek mennek a levesbe.
Többféle megoldást is tudok neked mondani, az első az, hogy amíg nem értél a vétel végére, addig ne írj semmit a soros portra. A második, használj megszakítást, írj saját rutinokat a küldés-fogadásra, címezd közvetlenül a regisztereket, azaz ne az előre megírt rutinokat használd.
Szerk: most látom, hogy println-t használsz, az még további két karakter jelent.
-
Teasüti
nagyúr
Estét!
Kérhetnék egy-két tippet arra miért hibázik nekem a Serial átvitel?
Serial monitorból szeretnék 11 karaktert átküldeni: 255,255,255.
De egymás után többször se sikerül fogadni az adatot, vhol mindig hibázik.
Ez volna a kód, aminek el kéne kapnia papíron:char message[12] = {};
bool newMessage = false;
byte messageCount = 0;
while (Serial.available() > 0) {
char c;
c = Serial.read();
if ((c == '\r') || (c == '\n')) { //end of line
if (messageCount) { //empty message filter
newMessage = true;
Serial.println("EOL");
break;
}
}
else {
message[messageCount++] = c;
if (messageCount > 12) { //overflow
newMessage = true;
break;
}
}
}Ez elvileg több loop() cikluson keresztül is olvas egészen addig, míg nincs sor vége, vagy túl nem csordul a tömb.
Ennek ellenére random hibákat dob nekem, kimarad egy-egy karakter a közepéből, vagy a végéről (ami után megjött ez EOL jelzés), de olyan is előfordult, hogy a 255-öt 2555-nek mentette el a kimeneten.Az átvitel bluetooth-on (hardveres UART) történik és a 15KB program hiba nélkül felmászik, de nem tudok elküldeni 11 bájtot??
(Mondjuk USB-hez viszonyítva tovább tart; lehet hogy hibajavítózik feltöltéskor? Tud ilyet a bootloader?)
A táp hálózatról megy, szóval még csak a gyenge USB-re se lehet ráfogni.
Sőt, a perifériáknak (BT) külön ágról megy a táp, nem az Uno-ról üzemelnek (ground közösítve).Jah és a Serial.write parancsok egyáltalán nem hibáznak. Soha.
Erre esetleg van vkinek vmi ötlete?
-
norbert1998
nagyúr
Üdv.
Adott egy uno, egy cnc pajzs és 1 drv8825 (van több is csak becsomagolva). Ki akartam próbálni, de egyszerűen nem jutok dűlőre.
Grbl 0.9j van rajta, universal sender és grbl controller egyaránt nem csinál semmi reakciót a gépen. 24v1a-t kap tápot, tudom hogy nudli, de meginditania kellene tudni.
2.8a a motor gyári értéke.Mi lehet az ok?
Megpróbáltam tobbfelekepp a motor bekötését, de a sikereset még nem találtam meg. -
Teasüti
nagyúr
Estét!
Miért kapok korrupt eredményeket, ha az alábbi képletben túllépem a 16 bitet?buffer2[i] = buffer2[i] + (buffer1[i] - buffer2[i]) * transition / 255;
Ez két pixel között számol áttűnést a transition/255 "százalékkal", és minden változó uint8_t méretű.
Viszont ha a transition és az osztója 255-nél nagyobb (értelemszerűen int16_t méreten deklarálva), akkor szemetel a kép. Miért nem mindegy itt, hogy a végén 200/255-nel szorzok, vagy 300/500-vel?
Ha a képlet részeredménye vhol túllépi a 16 bitet (gondolom ez történik), akkor nem kéne automatikusan feljebb lépnie integer műveletről long-ra? -
Teasüti
nagyúr
Köszi a segítséget!
Bevallom a doksiban keresni eszembe se jutott első körben, csak miután rámutattál a dologra.
Majd észben tartom, hogy egy óra gúglizás után talán nem ártana megnézni a doksit is.Más: végre működik a Lockup Detector-om!!
Ennyi az egész:#include <EEPROM.h>
#include <avr/wdt.h>
uint16_t report;
ISR(WDT_vect, ISR_NAKED)
{
register uint8_t *upStack;
upStack = (uint8_t *)SP+1;
report = (*upStack << 8) | *(++upStack);
eeprom_write_word((uint16_t *)500, report);
}
void setup() {
MCUSR = 0; // reset various flags
WDTCSR |= 0b00011000; // see docs, set WDCE, WDE
WDTCSR = 0b01101001; // set WDIE, WDE, and 8s delay
wdt_reset();
pinMode(13, OUTPUT);
Serial.begin(112500);
EEPROM.get(500, report);
Serial.print("Froze at: 0x");
Serial.println(report*2, HEX);
}
void loop() {
wdt_reset();
digitalWrite(13, !digitalRead(13));
delay(500);
if (Serial.available() > 0) while (1);
} -
zka67
őstag
válasz
Teasüti #3218 üzenetére
Szia, persze, én sem szoktam végigolvasni a több ezer oldalas doksikat, de amire szükségem van éppen, arra veszem a fáradtságot és átnyálazom alaposan, hogy melyik bit mit is csinál pontosan. Neked is csak rá kellett volna kattintanod az AVR CPU CORE -: STACK POINTER könyvjelzőre a doksiban, elolvasni, hogy hogyan működik és megnézni a hivatkozást az SRAM-ra, és máris tudtad volna, hogy miért nagyobb az SP értéke, mint a RAM mérete. Ezt nem bántásból írom, hanem a jövőre nézve adok tanácsot, sokkal gyorsabban megtalálod a doksikban amit keresel, mint ahogy itt válaszolnak neked. Utána úgyis megnézed a doksiban is azt, amit megnézhetnél kérdés nélkül is. De tényleg csak jószándékból írom ezeket.
De azt a "8 bites tömböt" nem értem, amit írsz.
uint8_t tomb[2048]; // Ez egy 8 bites tomb
uint8_t *pTomb; // Ez pedig egy 8 bites tombre mutato pointerIgen, a 8 bites tömb azt jelenti, hogy minden eleme egy bájtból áll.
Az utolsó elemének a címét pontosabban, nem
Mivel pointerként van deklarálva, ezért természetesen igen. Az elemet a * operátorral tudod elérni.
Üdv.
Zoli -
Teasüti
nagyúr
Itt van megnyitva az adatlap az egyik lapon, 660 oldalas pdf. Azért csak úgy brahiból nem fogok nekiállni kiolvasni.
Referenciaként használom, de ahhoz tudnom kell mit keressek.
De akkor most meglesem az SRAM működését.Köszi a figyelemfelhívást! Így visszamentem a tutorial-hoz és közben már látom is, hogy a mutató deklarálásánál a típus nem a mutató típusa, hanem az adaté, amire mutat.
De azt a "8 bites tömböt" nem értem, amit írsz.
Úgy érted, hogy 8 bitből álló egység (bájt)?uint8_t *report = SP+1;
Ez visszaadja a stack utolsó elemét.
Az utolsó elemének a címét pontosabban, nem?
Az utolsó elem értékéhez ha jól értem, kell a dereference (*). -
zka67
őstag
válasz
Teasüti #3216 üzenetére
Szia, az uint8_t * nem 8 bites változót deklarál, hanem egy 8 bites tömböt, aminek a címe egy 16 bites érték.
Az Atmel AVR8 procikban a ram nem a 0-ás címtől kezdődik, hanem 256-tól, és a stack pointert a memória végére címzi, szóval stimmel a 2297-es érték. A memóriád utolsó bájtjának a címe = 256+2047.
Egyébként nem árt megismerkedni a procikkal, amikkel dolgoztok, azaz el lehet olvasni az adatlapjukat, minden fent van az atmel.com oldalán.
uint8_t *report = SP+1;
Ez visszaadja a stack utolsó elemét.
-
Teasüti
nagyúr
Sziasztok ismét!
Kérhetnék egy kis segítséget a stack pointer megértésében?
Annyit tudok róla, hogy the stack pointer is a small register that stores the address of the last program request in a stack.
Valamint átrágtam magam ezen a bevezetőn a pointer-ek használatáról.
Ez alapján úgy sejtem az SP egy uint16_t változóval egyenértékű regiszter, hisz 256-nál több bájt van az SRAM-ban.
Korrekt?
Egy új sketch-ben a Serial.println(SP) nekem 2297-et ad, ami egyrészt egy 16 bites szám, másrészt meg mi a fene?? Nem 2KB SRAM van csak az Atmel 328p-ben?Nem értem továbbá, hogy a stack és heap size vizsgálatakor miért így deklarálják a változókat, ahogy:
void check_mem() {
//uint8_t * heapptr, * stackptr; // I declared these globally
stackptr = (uint8_t *)malloc(4); // use stackptr temporarily
heapptr = stackptr; // save value of heap pointer
free(stackptr); // free up the memory again (sets stackptr to 0)
stackptr = (uint8_t *)(SP); // save value of stack pointer
}A stackptr egy pointer, az SP is egy pointer, stimmt.
De ez miért így van: stackptr = (uint8_t *)(SP); ??
Miért 8 bites? Nálam így a 2297-ből 249 lesz, csak épp azt nem értem ez hogy a fenébe lenne már kívánatos eredmény, amikor itt a 2297 csordul túl, vagyis korrupt adat.
Na meg sehogy nem tudok rájönni hogy tudom kiíratni Serial-ol az SP-n lévő adatot.
Nálam ez hibát dob:uint16_t report;
report = *SP;
Pedig elvileg ez az SP dereference volna a pointer tutorial szerint, vagyis ezen a címen lévő adatot kéne visszaadnia.exit status 1
invalid type argument of unary '*' (have 'uint16_t {aka unsigned int}')És ami még furább, hogy az alábbi pár sor 16 bites számot ír ki a monitorra:
register uint8_t *upStack;
upStack = (uint8_t *)SP;
Serial.println((int)upStack);Nagyra értékelnék egy kis iránymutatást, már egy ideje a netet túrom emiatt, de csak random fórum posztokat találok kevés átfedéssel.
-
Teasüti
nagyúr
Aki random fagyásokat tapasztal I2C használata közben, az spórolja meg azt a szopást amin keresztülmentem (de a watchdog lockup detector-t csak azért is összerakom) és dobja ki az alapértelmezett Wire library-t a pi... a kukába!
Kulcsszó: I2C freeze bus lockupMÁS
Mellesleg nem tudja vki miért nem tudom használni az EEPROM.h library-t ISR interrupt-ból?
Nem találok arra vonatkozó infót, hogy megszakításokat használna ez a fgv könyvtár. -
DougButabi
tag
Sziasztok!
Ethernet Shield-el van problémám.
Ennél az utasításnál kifagy az uno-m, egyik ágba se fut bele, semmit nem ír ki, semmit nem csinál.
if (client.connect(server, 80)) {
Serial.println("connected");} else {
Serial.println("connection failed");
}A sima WebClient példafile sem megy, csak akkor, ha feltöltés után elveszem a tápot egy másodpercre az arduinotól. Akkor egyszer lefut, de többször nem.
Hardverhibára gyanakszom, van jobb ötletetek?
-
Janos250
őstag
válasz
Teasüti #3209 üzenetére
https://www.arduino.cc/en/Hacking/LibraryTutorial (a library készítést írja, de a végén az is le van írva, hova tedd, stb.)
[link]https://www.arduino.cc/en/Guide/Libraries
[link]aztán ha megnézel egy libraryt, látsz még benne ezt-azt.
library.properties néhány jellemző
keywords.txt itt adhatod meg, hogy miket milyen színnel jelöljön meg a keretprogram. "helyesírásellenőrzésre" jó
src könyvtárba kerülnek a .h és .cpp forrásfájlokbiztos még sokféleképpen jó, de így is működik.
-
Teasüti
nagyúr
Ez alapján én első körben a distanceToGo() függvénnyel próbálkoznék.
A harmadik motor akkor fut, ha az első kettő "odaért". -
mArZsi
tag
Üdv!
AccelStepper szakértő van itt?
Hogy lehet a library-val megcsinálni, hogy van 3 motor, ebből kettőt egy időben mozgatok, a harmadik várja meg míg befejezi a másik kettő és csak utána mozogjon?Vagy egyszerre mennek, vagy sehogy...
-
-
Teasüti
nagyúr
válasz
Janos250 #3203 üzenetére
Ok, rosszul töltöttem le, tele voltak HTML kóddal a fájlok.
Most sima copy&paste Github-ról (nincs egy qrva download gomb sehol).
Most "csak" ezt tolja az arcomba egyszerű #include-ra, vagyis semmit nem csinálok még vele a programban.Arduino: 1.6.8 (Windows 10), Alaplap:"Arduino/Genuino Uno"
libraries\ApplicationMonitor\ApplicationMonitor.cpp.o: In function `__vector_6':
C:\Users\cex\Documents\Arduino\libraries\ApplicationMonitor/ApplicationMonitor.cpp:26: undefined reference to `ApplicationMonitor'
C:\Users\cex\Documents\Arduino\libraries\ApplicationMonitor/ApplicationMonitor.cpp:26: undefined reference to `ApplicationMonitor'
collect2.exe: error: ld returned 1 exit status
exit status 1
Error compiling for board Arduino/Genuino Uno.
This report would have more information with
"Show verbose output during compilation"
option enabled in File -> Preferences. -
Janos250
őstag
válasz
Teasüti #3202 üzenetére
A /267 meg a B7h karakter, ami egy vesszős nagy E, vagy hasonló.
Tippjeim:
1. kicsomagolási, másolási hiba a fájlban.
2. valami olyan szövegszerkesztővel szerkesztetted, ami az ASC karakterek mellé még valami berak.Tehát a hiba azt jelzi, hogy nem ASC karakterek találhatók a fájlban.
Én nem látok az aplicationmonitor.h fájlban oda nem illő karaktereket.
Nálad valahogy nem jó ez a fájl. -
Teasüti
nagyúr
válasz
Janos250 #3201 üzenetére
A panel típusát nem szoktam piszkálni, telepítés után egyszer be lett állítva, aztán ennyi.
Háát, van itt baj rendesen, ha érti vki mi a hiszti:Arduino: 1.6.8 (Windows 10), Alaplap:"Arduino/Genuino Uno"
In file included from C:\Users\cex\Documents\Arduino\kicsike\kicsike.ino:1:0:
C:\Users\cex\Documents\Arduino\libraries\AppMonitor/ApplicationMonitor.h:26:5: error: stray '\302' in program
<title>ArduinoCrashMonitor/ApplicationMonitor.h at master · Megunolink/ArduinoCrashMonitor · GitHub</title>
^
C:\Users\cex\Documents\Arduino\libraries\AppMonitor/ApplicationMonitor.h:26:5: error: stray '\267' in program
C:\Users\cex\Documents\Arduino\libraries\AppMonitor/ApplicationMonitor.h:26:5: error: stray '\302' in program
C:\Users\cex\Documents\Arduino\libraries\AppMonitor/ApplicationMonitor.h:26:5: error: stray '\267' in program
In file included from C:\Users\cex\Documents\Arduino\kicsike\kicsike.ino:1:0:
C:\Users\cex\Documents\Arduino\libraries\AppMonitor/ApplicationMonitor.h:138:3: error: missing terminating ' character
<!-- </textarea> --><!-- '"` --><form accept-charset="UTF-8" action="/Megunolink/ArduinoCrashMonitor/search" class="js-site-search-form" data-scoped-search-url="/Megunolink/ArduinoCrashMonitor/search" data-unscoped-search-url="/search" method="get"><div style="margin:0;padding:0;display:inline"><input name="utf8" type="hidden" value="✓" /></div>
^
In file included from C:\Users\cex\Documents\Arduino\kicsike\kicsike.ino:1:0:
C:\Users\cex\Documents\Arduino\libraries\AppMonitor/ApplicationMonitor.h:467:69: error: stray '#' in program
<td id="LC8" class="blob-code blob-code-inner js-file-line">#<span class="pl-k">pragma</span> once</td>
^
C:\Users\cex\Documents\Arduino\libraries\AppMonitor/ApplicationMonitor.h:471:69: error: stray '#' in program
<td id="LC9" class="blob-code blob-code-inner js-file-line">#<span class="pl-k">include</span> <span class="pl-s"><span class="pl-pds"><</span>Arduino.h<span class="pl-pds">></span></span></td>
^
C:\Users\cex\Documents\Arduino\libraries\AppMonitor/ApplicationMonitor.h:475:70: error: stray '#' in program
<td id="LC10" class="blob-code blob-code-inner js-file-line">#<span class="pl-k">include</span> <span class="pl-s"><span class="pl-pds"><</span>avr/wdt.h<span class="pl-pds">></span></span></td>
^
C:\Users\cex\Documents\Arduino\libraries\AppMonitor/ApplicationMonitor.h:492:70: error: stray '#' in program
<td id="LC14" class="blob-code blob-code-inner js-file-line">#<span class="pl-k">if</span> defined(__AVR_ATmega2560__)</td>
^
C:\Users\cex\Documents\Arduino\libraries\AppMonitor/ApplicationMonitor.h:496:70: error: stray '#' in program
<td id="LC15" class="blob-code blob-code-inner js-file-line">#<span class="pl-k">define</span> <span class="pl-en">PROGRAM_COUNTER_SIZE</span> <span class="pl-c1">3</span> <span class="pl-c">/* bytes*/</span></td>
^
C:\Users\cex\Documents\Arduino\libraries\AppMonitor/ApplicationMonitor.h:500:70: error: stray '#' in program
<td id="LC16" class="blob-code blob-code-inner js-file-line">#<span class="pl-k">else</span></td>
^
C:\Users\cex\Documents\Arduino\libraries\AppMonitor/ApplicationMonitor.h:504:70: error: stray '#' in program
<td id="LC17" class="blob-code blob-code-inner js-file-line">#<span class="pl-k">define</span> <span class="pl-en">PROGRAM_COUNTER_SIZE</span> <span class="pl-c1">2</span> <span class="pl-c">/* bytes*/</span></td>
^
C:\Users\cex\Documents\Arduino\libraries\AppMonitor/ApplicationMonitor.h:508:70: error: stray '#' in program
<td id="LC18" class="blob-code blob-code-inner js-file-line">#<span class="pl-k">endif</span></td>
^
C:\Users\cex\Documents\Arduino\libraries\AppMonitor/ApplicationMonitor.h:718:70: error: stray '#' in program
<td id="LC68" class="blob-code blob-code-inner js-file-line">#<span class="pl-k">if</span> defined(WDTO_4S)</td>
^
C:\Users\cex\Documents\Arduino\libraries\AppMonitor/ApplicationMonitor.h:726:70: error: stray '#' in program
<td id="LC70" class="blob-code blob-code-inner js-file-line">#<span class="pl-k">endif</span></td>
^
C:\Users\cex\Documents\Arduino\libraries\AppMonitor/ApplicationMonitor.h:730:70: error: stray '#' in program
<td id="LC71" class="blob-code blob-code-inner js-file-line">#<span class="pl-k">if</span> defined(WDTO_8S)</td>
^
C:\Users\cex\Documents\Arduino\libraries\AppMonitor/ApplicationMonitor.h:738:70: error: stray '#' in program
<td id="LC73" class="blob-code blob-code-inner js-file-line">#<span class="pl-k">endif</span></td>
^
C:\Users\cex\Documents\Arduino\libraries\AppMonitor/ApplicationMonitor.h:873:3: error: missing terminating ' character
<!-- </textarea> --><!-- '"` --><form accept-charset="UTF-8" action="" class="js-jump-to-line-form" method="get"><div style="margin:0;padding:0;display:inline"><input name="utf8" type="hidden" value="✓" /></div>
^
In file included from C:\Users\cex\Documents\Arduino\kicsike\kicsike.ino:1:0:
C:\Users\cex\Documents\Arduino\libraries\AppMonitor/ApplicationMonitor.h:5:1: error: expected unqualified-id before '<' token
<!DOCTYPE html>
^
In file included from C:\Users\cex\Documents\Arduino\kicsike\kicsike.ino:1:0:
C:\Users\cex\Documents\Arduino\libraries\AppMonitor/ApplicationMonitor.h:471:148: error: expected unqualified-id before '<' token
<td id="LC9" class="blob-code blob-code-inner js-file-line">#<span class="pl-k">include</span> <span class="pl-s"><span class="pl-pds"><</span>Arduino.h<span class="pl-pds">></span></span></td>
^
C:\Users\cex\Documents\Arduino\libraries\AppMonitor/ApplicationMonitor.h:471:189: error: expected unqualified-id before '<' token
<td id="LC9" class="blob-code blob-code-inner js-file-line">#<span class="pl-k">include</span> <span class="pl-s"><span class="pl-pds"><</span>Arduino.h<span class="pl-pds">></span></span></td>
^
C:\Users\cex\Documents\Arduino\libraries\AppMonitor/ApplicationMonitor.h:475:149: error: expected unqualified-id before '<' token
<td id="LC10" class="blob-code blob-code-inner js-file-line">#<span class="pl-k">include</span> <span class="pl-s"><span class="pl-pds"><</span>avr/wdt.h<span class="pl-pds">></span></span></td>
^
C:\Users\cex\Documents\Arduino\libraries\AppMonitor/ApplicationMonitor.h:475:190: error: expected unqualified-id before '<' token
<td id="LC10" class="blob-code blob-code-inner js-file-line">#<span class="pl-k">include</span> <span class="pl-s"><span class="pl-pds"><</span>avr/wdt.h<span class="pl-pds">></span></span></td>
^
In file included from C:\Users\cex\Documents\Arduino\kicsike\kicsike.ino:3:0:
C:\Users\cex\Documents\Arduino\libraries\FAB_LED-master/FAB_LED.h:28:29: error: expected declaration before end of line
#pragma GCC optimize ("-O2")
^
exit status 1
Error compiling for board Arduino/Genuino Uno.
This report would have more information with
"Show verbose output during compilation"
option enabled in File -> Preferences.
Új hozzászólás Aktív témák
Hirdetés
- Luck Dragon: Asszociációs játék. :)
- Le Mans Ultimate
- sziku69: Fűzzük össze a szavakat :)
- Milyen asztali (teljes vagy fél-) gépet vegyek?
- AMD Ryzen 9 / 7 / 5 7***(X) "Zen 4" (AM5)
- Eredeti játékok OFF topik
- exHWSW - Értünk mindenhez IS
- CMF Phone 2 Pro - a százezer forintos kérdés
- AMD K6-III, és minden ami RETRO - Oldschool tuning
- bitpork: MOD Júni 13 Augusztus 2- szombat jelen állás szerint.
- További aktív témák...
- Apple iPhone 13Pro 128GB Kártyafüggetlen 1Év Garanciával
- Garmin Fenix 8 Amoled 51mm Sapphire Carbon Gray DLC - Használt, karcmentes
- Nitro ANV15-51 15.6" FHD IPS i5-13420H RTX 4050 16GB 512GB NVMe magyar vbill ujjlolv gar
- Apple iPhone SE 2020 64GB Kártyafüggetlen 1Év Garanciával
- iPad Pro 11 gen 2 + magic keyboard magyar makulátlan új állapot
- Hibás! Dísznek, Porfogónak, tesztkártyának vagy böngészni! Asus Rog Strix RX 470 4GB Videokártya.
- 3DKRAFT.HU - 3D NYOMTATÁS - AZONNALI ÁRAJÁNLAT - GYORS KIVITELEZÉS - 480+ POZITÍV ÉRTÉKELÉS
- Telefon felvásárlás!! iPhone 13 Mini/iPhone 13/iPhone 13 Pro/iPhone 13 Pro Max
- Phanteks NV5 MK2 White (PH-NV523TG DMW02)
- Csapj le az új MSI MPG B550 GAMING PLUS-ra most! 0% THM-RE is!
Állásajánlatok
Cég: CAMERA-PRO Hungary Kft
Város: Budapest
Cég: PCMENTOR SZERVIZ KFT.
Város: Budapest