Hirdetés
- Luck Dragon: Asszociációs játék. :)
- Sub-ZeRo: Euro Truck Simulator 2 & American Truck Simulator 1 (esetleg 2 majd, ha lesz) :)
- gban: Ingyen kellene, de tegnapra
- GoodSpeed: Ágymatrac keresési kálvária
- eBay-es kütyük kis pénzért
- sziku69: Fűzzük össze a szavakat :)
- Meggyi001: Kórházi ellátás: kuka vagy finom?
- sh4d0w: StarWars: Felismerés
- sziku69: Szólánc.
- WireGuard VPN a mindennapokra
-
LOGOUT
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
-
ReFleXx
addikt
mar miert nem lenne baj, szerinted akkor mi tortenik ha az 500as delay alatt kattint a gombbal? ha kiveszi akkor fog prellegni
itt az arduinos debounce tutorial: https://docs.arduino.cc/built-in-examples/digital/Debounce
-
lanszelot
addikt
Azt nem értem hogy ha sok kis kapcsolásnak érzékeli, akkor miért nem vált 1-et se. Hiába nyomkodom.
Erre írtam hogy nem a kapcsoló lesz a gond.Pl delay közben nyomom a gombot. Nem tudom hogy pontosan hogy futnak a programok. Így nem tudom nem az okoz e gondot.
De a delay kell a max6675 -nek. -
lanszelot
addikt
Hmmm, ez a baj. Nem tudtam a scope -ot.
Nem tudtam, hogy a loop -ból oda ki tud nyúlni.gombbal van most gond.
ha kikötöm, akkor is össze vissza nyomkodja magát. Azaz a gombnyomas valtozo értéke változik valamiért.#include <MQ135.h> /*gaz erzekelo, de nem kell neki igazabol*/
#include <Adafruit_SSD1306.h> /*oled display*/
#include <splash.h> /*oled display -nek kell*/
#include <max6675.h> /*homero*/
int thermoDO = 10; /*valtozo a homero DO pin -nek*/
int thermoCS = 9; /*valtozo a homero CS pin -nek*/
int thermoCLK = 8; /*valtozo a homero CLK pin -nek*/
int gombNyomas = 1; /*valtozo a gomb nyomas szamlalasara*/
int gombPin = 5; /*valtozo a gomb pin -nek*/
int gombAllapot = 0; /*valtozo a gomb allapot olvasasahoz*/
byte a = 0; /*valtozo a gaz erzekelo negyzet villogashoz*/
int sensorValue = analogRead(A0); /*valtozo a gaz erzekelo alalog pin -nek*/
int isgas = digitalRead(2); /*valtozo a gaz erzekelo digitalis pin -nek, ez arra kell, ha gas van akkor jelet ad, nem kell kulon erteket adni*/
String gas; /*valtozo a gaz erzekelo gas vagy no gas kiirasahoz*/
MAX6675 thermocouple(thermoCLK, thermoCS, thermoDO);
Adafruit_SSD1306 display = Adafruit_SSD1306(128, 64, &Wire);
void mindenRajtaVan() {
display.clearDisplay(); /*this line to clear previous logo*/
display.setTextSize(1); /*text size 3*/
display.setCursor(3,0); /*ez tartja egy helyben a szöveget*/
display.setTextColor(WHITE); /*without this no display*/
display.print("Thermometer by Gabor");
display.setTextSize(2); /*text size 2*/
display.setCursor(10,20); /*ez tartja egy helyben a szöveget*/
display.setTextColor(WHITE); /*without this no display*/
display.print("C = ");
display.print(thermocouple.readCelsius());/*Celsius*/
display.setTextSize(1); /*text size 2*/
display.setCursor(10,40); /*ez tartja egy helyben a szöveget*/
display.setTextColor(WHITE); /*without this no display*/
display.print("F = ");
display.print(thermocouple.readFahrenheit());/*Fahrenheit*/
display.setTextSize(1); /*text size 2*/
display.setCursor(0,50); /*ez tartja egy helyben a szöveget*/
display.setTextColor(WHITE); /*without this no display*/
display.print("CO2 = ");
display.print(sensorValue);
display.print(" PPM ");
/*sensorValue < 90 ellenorzeshez, amugy igas valtozo kell ami a digitalis pin*/
if (sensorValue < 90) {gas = "No Gas";}
else {gas = " Gas";
if(a) {display.drawRoundRect(80, 47, 40, 15, 2, WHITE);} /*negyzet a gas felirat kore feher*/
else {display.drawRoundRect(80, 47, 40, 15, 2, BLACK);} /*negyzet a gas felirat kore fekete*/
a^=1;
}
display.print(gas);
display.display(); /*to shows or update your TEXT*/
}
void homeroVanRajta() {
display.clearDisplay(); /*this line to clear previous logo*/
display.setTextSize(1); /*text size 3*/
display.setCursor(3,0); /*ez tartja egy helyben a szöveget*/
display.setTextColor(WHITE); /*without this no display*/
display.print("Thermometer by Gabor");
display.setTextSize(2); /*text size 2*/
display.setCursor(10,20); /*ez tartja egy helyben a szöveget*/
display.setTextColor(WHITE); /*without this no display*/
display.print("C = ");
display.print(thermocouple.readCelsius());/*Celsius*/
display.setTextSize(1); /*text size 2*/
display.setCursor(10,40); /*ez tartja egy helyben a szöveget*/
display.setTextColor(WHITE); /*without this no display*/
display.print("F = ");
display.print(thermocouple.readFahrenheit());/*Fahrenheit*/
display.display(); /*to shows or update your TEXT*/
}
void gazVanRajta() {
display.clearDisplay(); /*this line to clear previous logo*/
display.setTextSize(1); /*text size 3*/
display.setCursor(3,0); /*ez tartja egy helyben a szöveget*/
display.setTextColor(WHITE); /*without this no display*/
display.print("Thermometer by Gabor");
display.setTextSize(1); /*text size 2*/
display.setCursor(0,50); /*ez tartja egy helyben a szöveget*/
display.setTextColor(WHITE); /*without this no display*/
display.print("CO2 = ");
display.print(sensorValue);
display.print(" PPM ");
/*sensorValue < 90 ellenorzeshez, amugy igas valtozo kell ami a digitalis pin*/
if (sensorValue < 90) {gas = "No Gas";}
else {gas = " Gas";
if(a) {display.drawRoundRect(80, 47, 40, 15, 2, WHITE);} /*negyzet a gas felirat kore feher*/
else {display.drawRoundRect(80, 47, 40, 15, 2, BLACK);} /*negyzet a gas felirat kore fekete*/
a^=1;
}
display.print(gas);
display.display(); /*to shows or update your TEXT*/
}
void setup() {
Serial.begin(9600); /*elindítja a sorosportot, 9600 baud beállítással. Ez azért jó, mert a Serial Monitoron a program futását tudod monitorozni*/
pinMode(gombPin, INPUT); /*inicializálja a gomb pin -jet inputnak*/
Serial.println("MAX6675 test");
/*wait for MAX chip to stabilize*/
delay(500);
/*SSD1306_SWITCHCAPVCC = generate display voltage from 3.3V internally*/
display.begin(SSD1306_SWITCHCAPVCC, 0x3C); /*Address 0x3C for 128x32*/
display.display();
delay(2000);
}
void loop() {
/*For the MAX6675 to update, you must delay AT LEAST 250ms between reads!*/
delay(500);
/*read the state of the pushbutton value:*/
gombAllapot = digitalRead(gombPin);
/*check if the pushbutton is pressed. If it is, the buttonState is HIGH:*/
if (gombAllapot == HIGH) {
gombNyomas++;
}
Serial.println(gombNyomas);
if (gombNyomas == 1) {
mindenRajtaVan();
} else if (gombNyomas == 2) {
homeroVanRajta();
} else if (gombNyomas == 3) {
gazVanRajta();
} else if (gombNyomas > 3) {
gombNyomas = 1;
}
}gombnyomas értéke:
MAX6675 test
1
2
2
2
3
3
4
2
2
3
4
1
2
2pedig nincs semmi az 5-ös pin-en.
Lehúztam.Amúgy hogyan kell a gombot helyesen bekötni?
Ahogy én gondoltam: negativ -> gomb -> 5-ös pin
Pozitív nélkül
Vagy nem földelni kell gombnyomáskor az 5-ös pint, hanem 3V vagy 5V-t adni neki gombnyomáskor? -
lanszelot
addikt
-
lanszelot
addikt
Már nem úgy müködik....hmmm
Ez fura. Pihent kicsit és mindegy hogy dugom, ugyanúgy működik.
A digispark-ba a vezetékeket, a pc-be a digispark-ot
Viszont vmi kondenzátor vagy valami megtartja az onboard led-et pár másodpercig kék vezeték lehúzás után, ha alapból világít az onboard led.De a lényeget megtudtam, hogy melyik melyik pin a kódban.
Köszönöm szépen a segítséget
Végre jöhet a project amit kinéztem rá

-
lanszelot
addikt
"próbálom értelmezni," - ezért raktam be a linket, ahol ott a bekötési rajz
amúgy a piros vezeték: gomb és pozitív 5V boardról /ami fehér a pozitív, mert a pirost nem bírtam oda dugni, hogy ne ugorjon ki/ amikor a board-ot mutatom ott látszik a fehér hova van dugvaNem csinálhatok zárlatot, mert ahogy írtam, ha lehúzom a board-ot usb-ről, és PB4 -be dugva dugom vissza, akkor alapból nem világít, csak ha megnyomom a gombot akkor világít, ebben az esetben ha átdugom PB3-ra, akkor a bread board led világít folyamatosan, és gomb nyomásra elalszik.
Meg próbálom az asszonyt rávenni csináljunk új videót, hogy látsd
-
lanszelot
addikt
Hello,
Volt egy kis időm, és a te módszereddel sikerült életet lehelni bele
Két kérdésem lenne:
- Arduino progi : File -> preferences -> URL -hez lehetséges vlahogy több linket becsatolni?
Mert kell ennek a Digispark-nak, és a Nano -nak is kell.
Állandóan be kell másolgatnom amit épp rádugok.- ezzel a progival próbálgatom megtudjam melyik pin micsoda
/progin változtattam: led pin 1 , button pin 2/const int buttonPin = 2;const int ledPin = 1;
Nekem a button - arduino vezetéken van egy led
Ha PB3 -ba dugom akkor a led-emet kontrollálom a gombbal
Ha PB4-be dugom az onboard led -et kontrollálom a gombbal
video róla bocsánata a minőségért, csak 2 kezem van
Hogy is van ez? Miért vált led-et, a program ugyanaz?
Az se mindegy melyikre dugom, mikor bedudom a Digisparkot usb-re.
Amelyik bedugáskor be van kötve az alapból kikapcsolt, és gomb nyomásra bekapcsol.
A másik fordítva, ahogy a videón is látszik.
De ha a másikkal dugom be először, akkor az lesz alapból kikapcsolt.
-
KoVee84
senior tag
Csak a tesztelés miatt lett rossz ott az érték, egyébként minden név 7 napig jelenik meg, a Szelektív kuka felirat meg a 4. hét utolsó napján.
Nyilván lehet ezt sokkal jobban is csinálni, de az én programozó tudásommal ennek is nagyon örülök és majd nekiállok még csiszolgatni. Köszönöm az eddigi segítségeket!

-
lanszelot
addikt
Félre értettél.
Egyáltalán nem mondtam, hogy úgy kell ahogy a gyártó mondja.
Úgy néz ki én vagyok gyenge elméjű, és nem akartam marhaságokat írni ide.Amit szerettem volna:
Amikor megvettem a gyártó ígért: leírást, installalási útmutatót, példa programot, és ha bármi gond lenne segítséget.
Ezt a gyártó garantálja. És állítja hogy az úgy jó ahogy ő írja.
Meg is osztottam amit küldött pdf-et.
Amit sikerült valamennyire kibogoznom.A gond a pdf-el a sorrend.
Gyártó pdf szerinti sorrend:
+ installald az Arduino ide-t
+ Valaszd ki a board -odat
+ Válaszd ki a portot
+ Linkeld be a jsont
+ Installald a board managerben
+Installald a windows driver -tTehát a leges legvégén kell a drivert installálni.
Ez így szerintetek rendben van ez a sorrend?Mert így én nem tudtam felrakni.
Ezért írtam nekik, hogy hol rontottam el.
Még videót is küldtem róla, meg képeket.
Azt írták, hogy én nem tudok telepíteni és keressek valakit aki tud.
[kép]
Ha ennyire hülye vagyok akkor nem akartam itt marhaságokat írni.
Szerettem volna saját hibámat kizárni.
Ezért olvasgatok utána, de nem találom hol hibáztam.
-
ReFleXx
addikt
illetve ha mar van wifi, akkor ki lehetne rakni a netre valahova egy tablazatot hogy adott heten ki a soros es azt lekerdezve irhatna ki a kapott nevet, ennek meglenne az az elonye, hogy tavolrol frissitheto a lista, nem kell ujra programozni az eszkozt ha valaki kimarad mert epp nyaral stb
-
lanszelot
addikt
ami még kimaradt:
board lista: [kép]
/első az uno miatt ami nekem nincs, de nem is értem minek az uno
másik board lista: [kép]
hiába van kiválasztva, nincs com port
com lista: [kép]
megvárom mit jelez vissza a gyártó.
hétvégéig úgy se nagyon van időm
pénteken majd neki ugrok, hogy a te két félédet is megpróbáljam
újra lett indítva a gép, tehát az se lehet hiba -
lanszelot
addikt
A gyártói leírást. Belinkeltem a pdf-et. Ott van minden lépés, bár össze vissza írták. Abban vannak a linkek is.
1.8.18
Még nem tudtam azokat próbálni, mert dolgozom. Ezért irtam, hogy pénteken fogom tudni próbálni, mert akkor már ünnep lesz és lesz időm
Hétközben nem nagyon van időm, max 10-15 perc. -
lanszelot
addikt
Más a driver
Uno-t kell kiválasztani
Bár nekem egyáltalán nem működik.
Eszközkezelőben ott van , de nincs com portja.
Illetve az Arduino -ban hibát dob:
"warning: non trusted contribution, skipping script execution (c:\users\lanszelot\appdata\local\arduino15\packages\digistump\tools\micronucleus\2.0a4\post_install.bat)"
Megpróbáltam manuálisan installálni arról a helyről, de hibát dob úgy is. -
lanszelot
addikt
Hello,
A gyártó küldött egy használati útmutatót.
Itt másképpen telepítik Arduino-ba.
Megosztom, hátha érdekel
-
KoVee84
senior tag
Elvileg kész van, csak 5 nap alatt lezabálja a 18650-es aksit

4 családos társasházban lakunk, ahol minden héten másik család a "hetes" (kuka kirakás, lépcsőház felmosás, stb).
Csináltattam képkeretet, belekerül a Lilygo 18650-es akkuval, minden héten másik család neve jelenik meg, kiírja az akkufeszt, meg hogy mikor kell kirakni a szelektívet.A lilygo honalpján ezt írja azt írja, hogy Support PCF8563 RTC, ebből én valamiért nem arra gondoltam, hogy tudja az időkezelést.
Ha gondolod, akkor este szívesen átküldöm a kódot, de nyilván senkitől nem várom/várhatom el, hogy megcsinálja helyettem
-
lanszelot
addikt
Hello,
Ezeknek a pinout-oknak van valahol valami leírása kezdőnek?
Mert nem igazán vágom mi micsoda
[kép]
Az 5V és a gnd -t értem, a többit nem.
Usb az otg, és ki lehet valahogy kapcsolni, hogy használható pin-ek legyenek. Ez még nem érdekel, mert az alapokat se értem.
Vin, PB0-PB5-ig.
Egyedül a resetet értem. Költök rá egy gombot gnd-vel és gondolom ugyanaz mint a nano reset gombja, csak itt nincs a board-on, ezért így oldották meg.
A többiről fogalmam sincs. És amit találok leírást azok nem kezdőknek való. -
ReFleXx
addikt
Aki anno C-ben irta a kodot pl attiny-re, annak az arduinoban sokkal könnyebb dolga lesz, arrol nem beszelve hogy ezek a regi C kodok amiket pl AVR Studioban irt az ember azok siman lefordulnak a mostani Arduinoan is, de a mostani Arduino kodok mar nyilvan nem a libraryk nelkul.
Sajnos az Arduinoban megirt kodok nem a hatekonysagukrol es kicsi meretukrol hiresek, pl amig Arduinoban egy egyszeru Blink.ino leforditva 464 byte addig mindez egy regi, library nelkuli C-ben megirva es leforditva csupan 88 byte, azert az jelentos kulonbseg

Es meg ezen is lehetne faragni ha assemblyben lenne megirva eleve
-
lanszelot
addikt
Köszönöm szépen
igen az Attiny85 volt az.
Közben megtaláltam a srác angol nyelvű csatornáját
jó kis indiai akcentus, de követhető.
Újra írható a Attiny85?
Vagy csak 1szer írható?
Veszek párat, és megpróbálom lekövetni amit csinál.
Hátha sikerül rádobni a gáz érzékelőt
-
lanszelot
addikt
Nem, így értettem.
A kép: beirtam Google -ba "ic" első képet beraktam
Mint írtam a szakkörön annyit mondtak: ic-t ugyanúgy kell programozni mint az arduinot, a képen lévő ic -hez hasonlót rajzolt fel a táblára.
Többet nem tudok.
Amikor utána kerestem a videókon arduino-val ilyen alaku ic-ket programoznak.
Mivel indiai nyelven beszél egy szót se értek. És nem mutogatja el lépésenként.
Csak az arduino-t 8 vagy jóval több lábú ic -vel helyettesíti.
Bread bordba szúrja, össze kötögeti, és utana csak azt mutatja kész.
Tehát semmit.Fogalmam sincs milyen ic . Ezért kérdeztem itt , mert nem értek hozzá és azt se tudom hogy keressem
"From arduino to ic" ez nem segített.
Gondoltam van nyák lapom, és ic-vel össze dobnám a gáz érzékelőt, hogy olyat is lássak, hogy ic. Lehetne öröm bodottá.
-
t72killer
titán
Elektro topikból átköltözködve (hosszas privi csevejre most nincs időm, spektrométert építek éppen
, így ide szemetelnék): azon gondolkozz még el, hogy milyen formában kellene a kütyüt hordani. Mert ha szorosan bőrhöz rögzítve, akkor muszáj, h kényelmes legyen, máskülönben a polcon végzi.Pulzusmérőt nem kell megépítened, már megtették helyetted - igaz, erre még ráférne egy kis miniatürizálás:
Tipikus időskori baleseteken okulva: azon is el kell gondolkodni, hogy mi van, ha az alany éjszakai fürdőszobába menéskor esik el? Jellemzően nem okoskütyükkel a nyakunkban alszunk, lehet tele kéne poloskázni a lakást, a hanganyagra meg valami jó scriptet írni, hogy mikor kattanjon be a rendszer
? -
Apósnak sógorék most vesznek/vettek vmit, ami sim kártyás. Ha vész van, akkor 5 számot próbál hívni, ha nem veszik fel, akkor vmi központot, ahonnan visszahívják. Ha nem sikerül, akkor küldik a mentőt. Elvileg, asszonynak ezt magyarázták. Gondolom ez drágább, sim havidíj+szolgáltatás is van, de nem ismerem, h mi ez, jobb kimaradni dolgokból.

-
Janos250
őstag
Én annak idején a pointerekbe keveredtem bele, és el is hajítottam a C könyvet. Szerencsére a C++ -ban már kevesebbet kell használni. Igyekszem is - ha csak egy mód van rá - elkerülni a pointereket. Mivel pointer = tömb, így van is rá lehetőség. A tömb neve a pointer, a tömb[index] pedig a pointer + index. Ahogy a pointernek bármilyen - értelmes - értéket adhatunk, ugyanúgy a tömböt is rádefiniálhatjuk bármire, pl. akár a processzor perifériáinak hardver memóriájára is, akár többféleképp is, hogy ha úgy tartja úri kedvem, akkor uint8_t - ként, vagy uint32_t -ként érem el. Ugyanez megoldható a struktúrával is, az is bárhova definiálható a memóriában, bármilyen más néven használt mezőre is.
Sokkal kisebb a hibalehetőség, mint pointerezni. Mindamellett arra se kell vigyázni, hogy a new által létrehozott felszabadításra kerüljön, mert másként, idővel baj lesz. (Bár ezt már az okospointerek tudják, hogy felszabadítják.) -
lanszelot
addikt
De milyen programot látok?
Bármelyik program futásáról kérdeztem.
Hogyan fut le egy program?
Ez volt a kérdés.
Írtam hogy hogyan gondolom.
Azt is valószínű hibásan.DigitXT:
Az a program amit bemásoltam az annyi.
Nincs" ==" nincs semmi. Nincs vizsgálat.
Tanulok, és par soros programokat próbálok írni.
Vettem egy készletet, van benne minden.
Kiveszek valamit a készletből és megpróbálom működésre bírni.
Van hozzá program a dvd-n, de azzal mit tanulnék, ha megírt programokat töltögetnék fel a leírás szerint?Az előbb kivettem egy gáz érzékelőt:
Érzékelő egy adatot küld.
Ezt kiiratom, és ennyi.
Semmit se csinálok vele, nincs semmi más.
Oled programja ott van a linkben, gáz érzékelő pedig x pin -rol bejön.
A gaz érzékelőnek még library se kell.
Semmi sincs a programban.
If-et azért raktam be hogy gyakoroljam az 'if' et.
Ennyi. Nincs hova rakni a serial print -et, mert van az 'if' és nincs más.
Nincs program. Csak kezdő vagyok. A legelején tartok.
De azt a programot már megoldották.
2 megoldás is jött.
Utána irtam, hogy nem értem az egyiket.
Majd azt hittem jól gondolom a program futásának menetét az arduino -n, és emiatt rosszul értelmeztem a programot.
Rájöttem hogy rosszul értelmezem.
Leírtam hogy képzelem el a program futását.
De oda írtam valószínű rosszul kepzelem.
Ezért kérdeztem, hogyan fut le egy program?
Most már az egymagos két magost sem értem.
Valószínű mivel az alap futást sem tudom. -
-
lanszelot
addikt
feketét fehéret felcserélve is fekete van hosszan, tehát törli a kijelzőt az a gond.
Nincs bug.Valami alap dologban szerintem el vagyok tájolódva.
Nem úgy működik a program, hogy egy sor lefut, majd csak utána a következő, es csak utána a következő..stb fentről le.... ballról jobbra?
Kivéve function, mert ott oda ugratjuk, és végeztével vissza ugrik.Tehát bemegy "if"-be ott tru/false utat követ.
Bent "if" -ben, ha van delay , akkor addig ami meg van ott adva megáll és csak a késleltetési idő leteltével folytatja?
Ha igen, akkor hogy lehet, hogy folyik a delay, és a loop elejére ugrik?
Ha nem, akkor hogy működik?#19817 erre a linkre utaltam
-
DigitXT
félisten
Egyébként teljesen felesleges az egész képernyőt törölni, csak villogni fog.

De amúgy igaz, hogy így részleteiben beszélgetni egy baromi egyszerű, kicsi
kódsorról, nem fog megoldást hozni, ha a teljes program máshol van elszúrva.
(És itt nem bántásból írom, hogy elszúrva. Én is elkövettem "koncepcionális"
hibát, még a minap is, pedig már programozgattam Arduinora is, és mégis...)Kérjük a teljes kódot, és megköpködjük...
Helyesen: segítünk debuggolni! -
lanszelot
addikt
Nem tűnik el. Van fehér keret. Csak rövid ideig.
Ha törölné a fekete tovább lenne.
display.drawRoundRect -> ez újra rajzolja és ott van a fehér és fekete előtt is.
Nem értem mi az hogy nem rajzolja minden ciklusban.
Kijelzőt a loop elején törli. A megosztott oled linkemben is ott van.
Majd ha este haza érek megnézem, ha felcserélem akkor a fehér lesz e hosszabb ideig , vagy akkor is a fekete.Mielőtt kötekedésnek venné bárki, nagyon kezdő vagyok, és próbálom megérteni. Ezért azt írom le amit látok. Lehet rosszul írom. Csak megérteni szeretném.
-
lanszelot
addikt
Mindenkinek nagyon szépen köszönöm
(millis() - lastms > 200)
ezzel a villogás idejét szabályozom, ha jól értem
ha 200 helyett 4000 -et írok, akkor lassabban villog.
Fura megoldás, mert így csak a feketét késlelteti, tehát a fehér ugyanúgy rövid ideig vam.
Így meg olyan mintha nem villogna, ha pl 8000 -et írok.
Tudom, hogy kell átírni delay-el, csak értelmezni próbálom, hogy miért csak a fekete kapja meg a delay időt. Hiszen az mindenképpen lefut ha fehér ha fekete.
Nagyon kezdő vagyok programozásban
Agyalnom kellett mi micsoda.
uint32_t sem ismertem.
De legalább utána kellett járnom, és tanulhattam
-
gordonfreemN
addikt
Valami nem oké még, mindössze annyit tettem, hogy bemásoltam a -1-es caset ahogy mutattad. Most ugyanúgy működik mint eredetileg. Felvillan és úgy marad ha megnyomom.
Közben még: arra volna tiapasztalatotok, hogy a potméter DC motorját H-hidas vezérléssel milyen eszközel érdemes megoldani? Jó lenne a minél kevesebb fesz esés a vezérlőn, mert 5VDC-m van és a motornak is kell ennyi. Ez esetben csak szubminiatűr relé jöhet szóba?
-
gordonfreemN
addikt
& vargalex: Ennyi az egész kód egyelőre.
Köszi.
Küldi a jelet nyomva tartáskor. A soros monitoron ezek szerint az ismétlés kódja a -1 ?
Ha igen, akkor gomdolkodom, hogyan lehetne megoldani ezt így ebben a formában.na még tovább olvasva a válaszok: igen ez a kód amit betettem még csak arra képes, hogy vagy az egyik led vagy a másik világít. Azt szeretném, hogy amíg nyomom a távon a gombot (hangerőt nyomom egyébként) addig világítson, azután ha elengedtem, kapcsoljon ki a led is. Az a LED világítson amelyik gombot épp nyomom.
Ebből majd egy DC motort fogok vezérelni hangerőszabályzásra: ALPS RK27112.Lehet látni S22-n az infrát.

-
vargalex
félisten
Ezért kérdeztem a kollégától, hogy ez a teljes kód-e. Mert ugye a bemásolt kód csak a másik gomb megnyomásakor kapcsolná le a ledet, addig folyamatosan világítania kellene.
A telefon kamárájához megjegyzés: telefon kérdése is, mert pl. iPhone-ok esetén (talán már a 6-os, vagy 7-es óta) a kamerán van IR szűrő, ott nem látszik a villogás...
-
gordonfreemN
addikt
Szia!
Köszönöm mindenkinek a segítséget. Sajnos az említett kód nem segített, egyszer felvillan aztán süket a led. Delay-el is ez a helyzet. Próbálkoztam már én is ilyesmivel, de nekem se jött be. Esetleg más ötlet?
Gondolom a kódok miatt érdemes ennél a switch-case-nél maradni és ezt csűrni csavarni valahogy.
-
Ezeket általában C++ template-tel implementálják, én legalábbis azt csinálnám. Annyi a lényege, hogy a függvényparaméter típusa fordítás közben dől el.
Valami ilyesmi talán:
template <typename T>
void eeprom::put(T what)
{
eeprom::write((void*)&what, sizeof(what));
}És akkor kb. bármit tudsz menteni.
-
-
Blasius
tag
Igen, egy delay(5) segített. Még egy másik helyen a kódban előfordult egy hasonló eset. Azta... itt ilyenek vannak?
@Janos250
volatile char receivedChars[numChars]; el nem fordult le. (A volatile nem tudom pontosan mit csinál).A kód soros partról olvas. Van egy függvény ami karakterenként beolvassa ami a soros porton van. Ezeket hozzá csapja char receivedChars[numChars] -hoz (még néhány más dolog is történik, crc számítás stb) Ha jött egy 0x0a a soroson, az adat fogadás befejezettnek tekintett, és a függvény egy boolt átvált igazról hamisra. Egy másik függvény kezd valamit a beolvasott receivedCharsal, majd visszaváltja a boolt. A második függvénynél reklamált a fordító a volatile miatt. A hármas példa alapján indultam el. https://forum.arduino.cc/t/serial-input-basics-updated/382007
-
Janos250
őstag
"Mi az a 24"
Kétféle mask megadás terjedt el:
Az egyik (eredeti), hogy a mask 32 bitjében az első valahány bitet "folyamatosan" 1-re, az utána következőket pedig 0-ra állítod. Ezt használja pl. a windows
Másik, hogy /valamennyivel adod meg, hogy a mask első hány bitje egyes. A UNIX alapú rendszerek ezt használják, és ez persze jobb, mert nem lehet pl. a maskban mondjuk 50-et megadni, bármilyen kezdő is hálózat témában az illető.
A szabály a következő:
Van a Te IP címed, és van az, akivel dumálni akarsz.
A maskkkal mindkettőt bitenként logikai ÉS-eled. Azaz mindkettőben kinullázod azokat a biteket, ami a maskban 0.
Ha az így kimaskolt két cím "maradéka" megegyezik, akkor ugyanazon az alhálón, "dróton" van a két eszköz, azért küldesz egy broadcast (mindenkinek az alhálón szóló) üzenetet,
amivel megkérdezed, hogy kié az az IP cím. Ha valakié, akkor az válaszként elküldi a MAC címét, mert az alhálón nem IP, hanem MAC szerint kommunikálsz majd.
Ha senki nem válaszol, akkor levonod azt a következtetést, hogy nincs ilyen bekapcsolt gép -> hibajelzés. Ha valaki válaszolt akkor az küldi a MAC címét, és indulhat MAC cím alapján a kommunikáció. Ha a két maszkolt cím nem egyezik meg, akkor a gatewaynek (kapu a világ felé) kell küldened, és az ő dolga, hogy megkeresse, hogyan tovább, mert akkor az az állomás nem a Te alhálódon van.
Régen, amikor még nem a csillagpontos topológiát használtuk általánosan, hanem a busz topológiát, ott egyetlen koax kábelre voltak sorban felfűzve a gépek, akkor az szemléletesebb volt, mert akkor ami egy kábelen volt, az volt egy alháló.
Aztán, mivel egy gépen több alkalmazás is csatlakozhat a nethez (pl. két megnyitott Firefox), valahogy meg kell különböztetni, hogy ami válasz jön, az melyik FF-hez menjen. Ehhez az állomásod egyetlen IP címét még "kiegészíted a gépen belül még 2 bájttal", ennek a neve a port, amit a PHP átnevezett, ha jól emlékszem sessionra. Hogy kevesebben értsék meg, miről is van szó.
Mivel az IPv6 már rengeteg IP címmel dolgozik, ott már az egy gépen belül is jut mindenkinek külön IP, ezért az IPv6-ban nincs port. -
JozsBiker
aktív tag
Hát ha nem is egyszerre 255, de ha minden eszköznek fix ip címet adsz, ahogy én teszem, előbb-utóbb el tud az fogyni[...]
Az IP cím elfogyással kapcsolatban egy kis szösszenet. Bocs az offtopicért, de talán az érdekessége miatt tetszeni fog:
-
vargalex
félisten
Az ESP eszközeid nem akkor kapják a 192.168.4.1-et, ha ők AP-ként és DHCP szerverként működnek és te rájuk csatlakozol, így kapsz tőlük egy IP-t a 192.168.4.1/24-ből?
Elvileg működhet a netmask átírás, de egyébként nem egyszerűbb a PC-den 192.168.2.0/24-ből beállítani egy statikus IP-t, közvetlenül csatlakozni vezetékkel az N14U-ra és átállítani a LAN IP-jét egy saját hálózatodban lévőre (nem használtra)? Gondolom repeater módban kikapcsolja a DHCP szervert... Majd visszarakhatod a PC-det DHCP-re.
Ezért szeretem az OpenWrt-t. Ott ilyen esetben én a második router LAN interface-jának azt mondom, hogy DHCP-n kérjen magának IP-t (és gateway-t, DNS-t). Nem kell kézzel beállítani semmit, látszik az első router DHCP táblájában.
-
-
Az újabb verzió (2812B) kettős PWM-et használ. Az első fok az output driverek bemenő feszültségét csökkenti, így értek el jelentősen kisebb hőtermelést a chipen belül az előző verzióhoz képest. A blokkdiagramjuk persze teljesen titkos, de ha lehet hinni a marketing-kommunikációnak, akkor bizony nem sima stabkockákkal tömték meg.
Egyszerűen ellenőrizhető egyébként: 3.3V-ról és 5V-ról is táplálható a szalag, pár LED esetén már mérhető az áram csökkenése.ViZion: Azért neveztem közhiedelemnek, mert maga a gyártó sosem állított ilyet. Sőt a Pololu pl. egyenesen 50mA-t ír a datasheetjeibe pixelenként. A WorldSemi pl. sosem nyilatkozott arról, hogy maga a belső áramkör milyen referencia értékekkel dolgozik. Lehet, hogy a ledek benne 20mA-el mennek névlegesen, de ők alulhajtják gyárilag a közös tokozás miatt. A biztonsági tényező persze attól nem árt, csak imhol az ékes példája, amikor valaki az urban legend alapján üzemi értékek helyett abs.max értékekkel tervez. Aztán amikor elkészül, szomorúan látja, hogy alig 50%-ban használja ki a forrását.
-
op9
aktív tag
A problémám csak az, h ez a fényerőben is látszik. Úgy számoltam, hogy ennyi led-del egy 2.1A-es powerbank-kal tudom használni, és ha kell a fényerő, akkor maxra feltekerhetem.
És most látszik, hogy kellene a fényerő, de alig lesz világosabb, ha "fehéren" mind a három világít. Ha ezt tudom, akkor több led-et építettem volna be.Köszi a magyarázatot! Ez esetben legközelebb előbb tesztelgetek, és nem a specifikációra hagyatkozom.
-
gordonfreemN
addikt
Természetesen így teszek, ezért meg is köszöntem a tippet!

A megoldás amit említesz... (és köszönöm!) ez azt jelentené, hogy lemegy a for ciklusban a led villogás mondjuk egyszer, majd belép powerdown módba és onnantól nincs villogás?A lenti példánál (#19639) gordonfreemN válasza dew28 (#19636) üzenetére írtam legalább egy butaságot: 8s-ig tartanám powerdown módban, ezzel az a baj, hogy addig kellene nyomogatni a button_p-t is. Inkább egy 2s-os powerdown-al lenne ez talán élhető.
-
gordonfreemN
addikt
Jó, jogos.
Amúgy a feltett kérdésre tényleg nem tudni a választ vagy csak hagyjátok a kezdőt saját utakat járni?
Mert tényleg nem értem miért mi a különbség a lowpower.h és az avr/sleep.h közt.Próbálkozok egyébként:
#include "LowPower.h"
void setup() {
// put your setup code here, to run once:
}
void loop() {
{
// Allow wake up pin to trigger interrupt on low.
attachInterrupt(0, wakeUp, LOW);
LowPower.powerDown(SLEEP_FOREVER, ADC_OFF, BOD_OFF);
// Disable external pin interrupt on wake up pin.
detachInterrupt(0);
// Do something here
}
}
de azt a hibát adja az ellenőrzés, hogy'wakeUp' was not declared in this scope -
-
-
ekkold
Topikgazda
-
-
Laurencius
újonc
Azért írtam oda, hogy akkor a képernyő elforgatása... A képernyőt - vagyis a kijelzőt - "fektetve" használnám, mint ahogy a számítógépem képernyőjét (monitorját).
Nekem kifejezetten monokróm - fekete megjelenítés, és világító háttér - kijelzőre lesz később szükségem. Ha nem lesz hozzá szerencsém, akkor természetesen a meglévő színes kijelzőt használom majd úgy, ahogy most javaslod.
Úgy tűnik válaszodból, hogy valamit lehet kezdeni a maxscroll utasítással... -
Laurencius
újonc
Egyelőre kipróbálni még nem tudom a javaslatokat, mással van teli az asztalom. De ha van egy kis időm, akkor keresgélek a lehetőségek között. Ilyen például a következő:
vajon szerinted a képernyő jobbra-balra mozgatása nem egyenértékű-e a képernyő görgetésével, illetve fel lehetne-e valahogy használni az én célom megvalósítására?for (uint16_t i = 0; i < maxscroll; i++) {
tft.vertScroll(0, maxscroll, i);
delay(10);}Persze, ehhez a képernyőt el kell fordítani:
tft.setRotation(r); //setRotation(uint8_t r)
Ez a kód elforgatja a képernyőt: 0=0, 1=90, 2=180, 3=270.
Persze az is fontos kérdés számomra, hogy vajon a korábban jelzett színes kijelző helyet tudnék-e alkalmazni monokróm LCD-t? A Google-n keresgélve a rengeteg típus között épp csak azt nem tudom, hogy melyiket lehetne ehhez az Arduino összeállításhoz minél kevesebb, vagy semennyi kód átírással használni... -
gya/352
tag
00 - Naxi - elsőre indul
01 - Easy Hits Florida - másodikra megy
02 - CLASSIC ROCK MIAMI - érvénytelen link
03 - Magic Oldies Florida - érvénytelen link
04 - Magic 60s Florida - érvénytelen link
05 - Classic Rock Florida - érvénytelen link
06 - Radio 1, NL - másodikra megy
07 - 1.FM - GAIA - elsőre indul
08 - Skonto - érvénytelen linkPl ez az adó nincs benne a listában; 1a-60er.radionetz.de/1a-60er.mp3 másodikra megy
vagy ezt elsőre lejátsza mp3.magic-radio.net/320
Lehet hogy a webcím struktúrájával van gondja? -
gya/352
tag
Az a bosszantó hogy van olyan állomás amit gond nélkül el kezd lejátszani akár induláskor preset beállítás alapján, akár kiválasztás alapján; és van olyan amit meg nem. És természetesen ami nekem kellene az a nem kategóriában van.
Most két adó van a presetben:
preset_00 = icast.connectmedia.hu/5001/live.mp3 # 1 - Retro Radio
preset_01 = 205.164.62.15:10032 # 2 - 1.FM - GAIA, 64kAz elsőt nem tudja csak többszöri indításra lejátszani, a másodikat mindig csont nélkül elinditja.
-
lanszelot
addikt
Hello,
Kaptam egy Arduino Uno-t ahol dolgozom, az egyik tanártól.
Ez a leírás szeritn csináltam. Pont úgy.
Azzal is hibát dob:
Arduino: 1.8.18 (Windows 10), Board: "Arduino Nano, ATmega328P"
Error while burning bootloader.
avrdude: Expected signature for ATmega328P is 1E 95 0F
Double check chip, or use -F to override this check.
This report would have more information with
"Show verbose output during compilation"
option enabled in File -> Preferences.Avrdudess:
You have the latest version :)
>>>: avrdude -c arduinoisp -p m8
WARNING: Unable to detect MCU
avrdude.exe: Error: Could not find USBtiny device (0x2341/0x49)
avrdude.exe: opening programmer "arduinoisp" on port "usb" failed
avrdude.exe done. Thank you.Bár még mindig nem tudom hogy kell használni.
#19517weiss: szerintem félre értetted, blink és hasonló programról írtam, nem bootloader-ről
Amúgy én vagyok a programozó. -
lanszelot
addikt
Nincs olyan lehetőség, hogy Arduino as ISP.
Nem ismeri fel se Arduino, se Arduino Programmer ISP, se a másik
se Arduino Programmer ISP -n /2 van belőle/
Nem írtad hogy kell összekötni. #19512 ICSP alapján kötöttem összeLehúztam mindent nano-ról,
Nano-t usb kábellel bedugtam pc-be,
AVRDUDESS 2.14 portable elindítottam,
Programmer - Arduino válsztottam
Detect - Unable to detectvargalex: vásárlás leírásban ott volt, hogy nincs bootloader, csak nem tudtam az mit jelent
gondoltam, úgy is saját kódot akarok rárakni.
Új hozzászólás Aktív témák
- 2025 - Íme a 46. héten megjelenő játékok listája
- Eredeti játékok OFF topik
- Samsung Galaxy S24 Ultra - ha működik, ne változtass!
- Milyen autót vegyek?
- Vírusirtó topic
- Arc Raiders
- CASIO órák kedvelők topicja!
- AMD K6-III, és minden ami RETRO - Oldschool tuning
- iPhone topik
- Azonnali notebookos kérdések órája
- További aktív témák...
- Precision 5570 15.6" FHD+ IPS i7-12800H RTX A2000 32GB 1TB NVMe ujjlolv IR kam gar
- Lenovo Thinkbook L16 Gen 1 Magyar Ultra U 135U, 16GB DDR5, 512GB NVME, Gari: 2029-05-29
- AlzaErgo M120B Secure Pivot TV tartó konzol - ÚJ
- AlzaErgo M120B Secure Pivot TV tartó konzol - használt
- BESZÁMÍTÁS! ASRock B450 R5 5500 16GB DDR4 250GB SSD 1TB HDD GTX 1050Ti 4GB GameMax STORM ADATA 600W
- Gamer PC-Számítógép! Csere-Beszámítás! R5 3600X / GTX 1080Ti / 16GB DDR4 / 512 SSD
- Samsung Galaxy S24 FE / 8/128GB / Kártyafüggetlen / 12Hó Garancia
- Több db Nvidia Quadro M4000 8GB GDDR5 videokártya számlával
- OLCSÓBB 10.13.! Dell Latitude Precision Üzleti gépek, 2-in-1 gépek, Vostro 8-12. gen.
- MacBook, Apple M1 / M2 kompatibilis dokkolók, DisplayLink 4K, USB-C, Type-C
Állásajánlatok
Cég: Laptopműhely Bt.
Város: Budapest
Cég: PCMENTOR SZERVIZ KFT.
Város: Budapest




, hiszen tegnap beszéltük.
?


de lehet kapni ilyen eszkozoket keszen



ekkold
