-
Fototrend
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
-
válasz
Undoroid #20478 üzenetére
szégyen ide vagy oda- sohasem csináltam még ilyet...
Én sem ettem cseresznyét addig, amíg először nem ettem
Egy weboldalt kell hozzá összerakni, ha nem is csináltál még ilyet, azért ma már számtalan segítség van hozzá, akár wysiwyg szerkesztő programok. Itt a topikban is van sok példa, janos250 kolléga szokott volt ilyeneket megosztani, én is azzal kezdtem a legutóbbi projektemet.
-
válasz
Undoroid #20472 üzenetére
Ha kimondottan szeretnél rá kijelzőt l'art pour l'art, akkor jó a Nokia is, lehet rá grafikont is rajzolgatni, de teljesen felesleges. Inkább mondanám az ESP32-t, abban van RTC is, nem kell külön venni, netre kötve az órát szinkronizálni lehet, és olyan csillivilli webes felületet csinálhatsz hozzá, amit nem szégyellsz, gombok és kijelző helyett.
Ráadásul ha ügyes vagy, még riasztást is tudnál vele küldeni (emailben vagy mondjuk telegram-on) az akkumulátor állapotáról, ha van ilyenre igény. -
válasz
its_grandpa #20473 üzenetére
A táp választást mivel indokolod? Ez egy step-up modul, az esp számára teljesen alkalmatlan, mivel lefelé nem tud konvertálni, csak felfelé.
-
válasz
Ton-ton #20465 üzenetére
Ez csak i²c-hez szükséges! A kijelzőnél egyirányú a kommunikáció, a hex buffer pont elég hozzá. Bár árban / méretben nem tudom melyik a praktikusabb, lehet az egyszerű ellenállásos verzió is megteszi, de azt én nem merem ajánlani, mert egy ilyen Nokia kijelzőt már régebben kinyírtam szintillesztő IC nélkül.
-
válasz
vargalex #20445 üzenetére
Hát akkor próbáld ki telefonon.
Főleg amikor utólag szeretnél javítani/módosítani valami formázást/linket stb.
De a legrosszabb valóban a kód formázás, mert nem képes egyben formázni, szétszedi sorokra a kódot.Ezt a szerkesztős dolgot be lehetne tenni az összefoglalóba, mostanában annyian kérdezték már.
-
-
-
válasz
#68216320 #20355 üzenetére
Komolyan érdekel, írd már meg, hogy miért nem jó egy olyan célgép, amit tegnap linkeltem neked (YouTube videó)!
Más: nem kerestem még utána, de olyan projekt nincs, ahol Raspberry Pi zero-t használnak vezérlőnek? Annál az USB közvetlenül a processzorral van összekötve (OTG), és eleve van olyan módja (usb gadget), ahol különböző USB eszközöket tud emulálni (mass storage, keyboard, mouse), talán egyszerűbben meg lehetne oldani vele egy floppy emulációt, mint mikrokontrollerrel.
szerk.: Nocsak.
https://hackaday.com/2021/03/30/a-floppy-controller-for-the-raspberry-pi/Ez meg pi mikrokontroller:
https://community.element14.com/products/raspberry-pi/raspberrypi_projects/b/blog/posts/happy-pi-day---rpi-pico-floppy-disk-controller -
válasz
#68216320 #20331 üzenetére
Ha a gyári USB megoldások minőségével problémád van, szerintem egy kókányolt Arduino-s megoldással még több gondod lesz.
Melyik részével van problémád, a fizikai olvasóval? Mert én a helyedben szétszednék egy ilyet és rápróbálnám az elektronikáját egy drive-ra.
Az ilyen feladatokra nem lenne hasznosabb inkább egy célgépet építeni? -
válasz
its_grandpa #20326 üzenetére
Persze, igazad van, pont a hordozhatóság miatt használjuk, amit írtál.
-
válasz
its_grandpa #20324 üzenetére
Nem is értem miért működik mert ugyan INPUT_PULLUP a 2,3-as pin de az ISR fv. a 0-as pin-re van konfigurálva, nem szépen.
attachInterrupt(0, teker, CHANGE);
Ez a 0-s interrupt, ami az Attiny85-nél épp a 2-es pin.
AdigitalPinToInterrupt(PIN)
is 0-t ad vissza. -
válasz
razorbenke92 #20301 üzenetére
Nem akarok hülyeséget mondani, de úgy emlékszem, hogy az AVR-eknél az interrupt hívás automatikusan tiltja a többi interruptot (CLI), és csak a visszatéréskor engedélyezi ismét (SEI), vagyis elvileg nem lehetséges, amit írtál. Különben egy ilyen esetnél igen gyorsan megtelne a verem.
-
válasz
razorbenke92 #20293 üzenetére
Az időbeli korlátozás pedig kell, mert az encodernél is felléphet pergés, ha mechanikus. Az 1000 ms helyett olyan 30-50ms közé kellene állítani.
-
válasz
lanszelot #20292 üzenetére
Ha külön-külön is szeretnéd működtetni a két LED-et, akkor a digispark pin0-ra az egyik LED rövid, a másik LED hosszú lábát kell kötni! Amelyik rövid lába van a pin0-n, annak a hosszú lábát az R1-re kösd (+5V), ez a pin0 alacsony szintjére kapcsol be, a másiknál pedig fordítva, a hosszú lábát a pin0-ra és a rövidet az R2-re (GND), ez magas szintnél fog világítani. Hogy egyik se világítson, a pin0-t INPUT-ra kell állítani.
-
-
válasz
lanszelot #20287 üzenetére
A kolléga nagyon szépen leírta helyettem a problémát és a megoldást is
A 3 és 4 lábat csak abban az esetben használhatod, ha nem tervezel semmilyen usb jellegű felhasználást (pl keyboard emuláció stb) és azok a lábak csak akkor fognak rendesen működni, ha a cucc nem adatportba van dugva, mivel a számítógép folyamatosan kommunikál azokon. Ezen kívül a 3as porton van egy 1,5k felhúzó ellenállás, amit nem tudsz kikapcsolni, ez általában nem zavar, mert amúgyis szokás felhúzni olvasáskor, de engem már tréfált meg, hogy nem vettem figyelembe:
Azért írtam, hogy használd csak az első 3 lábat (0-2):
- a 0-ra kösd a két LED-et,
- a 2 legyen a CLK, mert arra van külső interrupt,
- a DT meg legyen az 1. -
válasz
lanszelot #20282 üzenetére
Ugye nem felejtetted el, hogy a 3-as pin egyben az USB egyik data vonala is? USB portba dugva nem fog működni, powerbank-ba dugva talán.
Szerk.: csak most néztem végig a programot, ez ebben a formában semmiképp nem fog működni, mert több másodperc delay van minden egyes beolvasás közt, miközben egy rotary encoder forgatása másodpercenként több tucat impulzust is generál. Vagy interrupt kell a beolvasáshoz, vagy minden delay-t likvidálni kell.
Egy tipp: ha lábat szeretnél spórolni, egy lábra két LED-et is rá tudsz kötni, egymáshoz képest fordítva (pin-GND és pin-+5V közé), így az egyik magas, a másik alacsony állapotnál világít, kikapcsolni pedig a port input-ra állításával lehetséges.
-
-
válasz
cog777 #20250 üzenetére
Ahonnan mindent is: a sarki hobbielektronika boltból.
Nagy lapokban adják, méretre kell vágni. Van több féle, van, ahol minden forrasztási hely külön van, meg olyan is, ahol hosszú vezetősávok vannak, amit meg kell szakítani, meg olyan is, ahol hármasával vannak összekötve. Mindegyikből tartok, mikor melyik a praktikusabb, azt használom. -
válasz
lanszelot #20229 üzenetére
Az a nagyon nagy baj, hogy amíg ezt ide leírtad, addig beírhattad volna a Google-be, ahol a legelső találat elmagyarázza, még a link is ott van, ahonnan le lehet tölteni.
A hex fájlon mi bonyolult van? Írtam én olyat, hogy meg kell érteni?
Be kell tallózni, ahová a kép mutatja, megnyomni a Go-t és kész.
-
válasz
lanszelot #20221 üzenetére
Ugye arra az Attiny85-re, amit a másik topikban tárgyalt programozóba dugsz, amihez utána nem tudod telepíteni a drivert, nem az Attiny85 board-ot kiválasztva próbálsz bootloader-t feltölteni, hanem a Digistump-ot választod ki hozzá és annak a bootloader-ét töltöd rá?
-
válasz
#68216320 #20193 üzenetére
Vettük ám a poént
Én is a több Nokia kijelzőt akartam javasolni, ha már, ahogy írod, van több is. Ha nem tudod egymás mellé tenni úgy, hogy ne legyen látható az illesztés, akkor csináld direkt láthatóra! Nem tudom pontosan milyen kijelzés lesz rajta, de rendezd el őket aszimmetrikusan, mondjuk egy 3D nyomtatott keretbe. Az egyiken legyen csak időjárás, a másikon a naptár stb. Vagy ha van 6 kijelző, akkor például az óra minden száma külön kijelzőre tud kerülni.
-
-
válasz
Wolfram #20171 üzenetére
Nem lehet, hogy nincs egyetlen delay sem a loop-ban és emiatt nem tud a CPU a wifivel foglalkozni? Bár ez ha jól tudom, ESP8266-ra jellemző, te meg ESP32-t használsz, de hátha ez a gond, egy próbát megér.
ESP-n a delay máshogy működik, más funkciót tölt be, mint az AVR-eken. -
Azért mondjuk az űrhajók, atomerőművek szoftverei eléggé meg vannak írva.
Persze nyilván igazad van, egy szoftver fejlesztése sosem fejeződik be, csak abbahagyni lehet.
Egy mikrokontroller esetén van az a komplexitás szerintem, amit kis szerencsével még meg lehet írni hiba nélkül, illetve a memory leak-eket el lehet kerülni bizonyos konvenciók betartásával.
-
-
válasz
Wolfram #20104 üzenetére
Programhibából fakadó fagyás, vagy véletlenszerű, a körülmények miatti (pl. táp vagy wifi) hiba?
Kódból watchdog timerrel szokás az ilyet "kezelni". Ha pedig nem külső körülmények vagy hardverhiba okozza, vagy végtelen ciklus, akkor szinte biztos, hogy memóriaelfogyás az oka. -
válasz
its_grandpa #20101 üzenetére
Álljunk le a C programozás tanfolyammal ?
Én ilyet nem mondtam.
-
válasz
lanszelot #20097 üzenetére
Egyszerű. Ha egy kód nem működik és kérdezni szeretnél róla, ahhoz nem elég, ha csak te látod a kódot. Egyrészt mert nem biztos, hogy ott van a hiba, ahol keresed, másrészt az ember nehezebben találja meg a saját maga által elkövetett hibát.
A *.h fájl azért pár soros, mert csak a definíciókat tartalmazza. Az érdemi kód a *.c, *.cpp fájlokban van. Ha szeretnéd tudni, hogy mit tartalmaz egy library, ezeket nyisd meg, fogsz benne látni egy nagy csomó függvényt, aminek remélhetőleg beszédes neve van és elmondja, hogy mit csinál, illetve meg tudod nézni, hogy pontosan milyen paramétereket vár. Ezen túl minden library mellé szoktak tenni example fájlokat, amikből kiderül, hogy hogyan kell ezeket használni, ezekből komplett kódrészleteket lehet némi módosítással átemelni a saját kódodba, illetve én például sokszor eleve ezeket szoktam átírni.
A kollégának amúgy igaza van, ez az Arduino topik, nem a programozás alapjai, szóval érdemes lenne valamilyen tutoriallal folytatni az ismerkedést, illetve használd többet a Google keresőt, mert a legtöbb kérdésedre nagyon jó leírások vannak az interneten...
Persze itt mindenki nagyon segítőkész, és sokszor van szó általános programozással kapcsolatos dolgokról is, de na...
-
válasz
lanszelot #20092 üzenetére
Na ezért mondtam, hogy kíváncsi lennék, hogy hogy tetted ki a változó definíciót, mert a nyakamat tettem volna rá, hogy az egész sort értékadással együtt átraktad, de persze az ember látatlanban találja ki egy felületesen megfogalmazott félmondatból...
Ez a definíció, ezt ki tudod tenni a program elejére:
int sensorValue;
int isgas;Ez pedig az értékadás:
sensorValue = analogRead(A0);
isgas = digitalRead(2);ezt értelemszerűen nem tudod kívülre tenni, egyrészt mert ott le sem fut, másrészt meg mert nincs is értelme, mert a függvény szerves részét képezi.
-
válasz
its_grandpa #20078 üzenetére
Jó észrevétel. Megoldás?
-
válasz
its_grandpa #20075 üzenetére
Nem szívesen írok interruptban fv.-ben if-et
Igazad van, lehetne anélkül is, gondoltam rá, így viszont hordozható lesz a kód, később más projektben fel tudja használni. Ha ketté lenne szedve (a debounce a loop-ban lenne) akkor később nehéz szétválogatni, na meg megérteni is.
Miért kell szerintetek két változó a nyomások számolására
Nem kell, illetve nem így, de már nem akartam bántani. Azon az állásponton vagyok, hogy ami működik, azt nem szabad megjavítani.
de ahol fontos, hogy ne legyen prell ...
Biztos van rá száz megoldás, de inkább tanulja meg egyszer és ne használja, mint később szüksége legyen rá és ne tudja mi a megoldás.
Kellett már nekem pergésmentesíteni optikai encodert is, mert nagyon lassú fordulatszámon hülyeséget számolt a lassan változó jel miatt.
-
válasz
lanszelot #20064 üzenetére
Az ellenállás nélkül, de úgy raktam be
Tehát nem úgy.
Tudom, hogy sok információ, de:
1. A prellmentesítést/debouncing-ot nem hardveresen szokás megoldani, mivel szoftverből jól kezelhető a probléma.
2. Ha mégis hardverből szeretnéd, akkor az ellenállás és a kondenzátor értéke együtt fogja neked kiadni a debounce idejét. A beépített ellenállás 30kΩ-50kΩ közti random érték, amivel nem igazán lehet számolni
3. Ha szoftverből csinálod, nem kell külső felhúzó ellenállás, a beépített pont elég, hogy a lebegést megszüntesse, hiszen erre kell az ellenállás.
4. Felejtsd el a kalkulátort, csináld szoftverből, hiszen ez a bevett, kipróbált módszer.
5. A 80ms debounce és a 270ms mérési késleltetés egymástól teljesen független. Ha a fenti kódot beteszed a programba, észre fogod venni, hogy egyik nem befolyásolja a másikat. A működése egyébként az, hogy amikor prellez a gomb érintkezője, az utolsó alacsony szint után vár 80ms-ot, és csak utána reagál. Ha 80ms előtt új impulzus érkezik, akkor nem reagál rá.szerk.: Most jöttem rá, hogy rossz a kód, ez interrupt esetén nem fog működni... Ez lesz a jó:
void gombotnyom(){
if (millis() - debounce > 80){ /* eltelt 80 msec ? */
gombNyomas ++; /* növeljük 1-el a gombnyomások számát */
if (gombNyomas >3) gombNyomas = 1;
debounce = millis();
}
} -
válasz
lanszelot #20061 üzenetére
Így?
A kondi szerintem kevés lesz oda. [link]
30-80ms közt érdemes beállítani a debounce idejét.De szoftverből sokkal jobb ezt (is) csinálni.
volatile uint32_t debounce= 0;
void gombotnyom(){
if (millis() - debounce < 80){ /* eltelt 80 msec ? */
debounce = millis();
}else{
gombNyomas ++; /* növeljük 1-el a gombnyomások számát */
if (gombNyomas >3) gombNyomas = 1;
}
} -
-
válasz
its_grandpa #20048 üzenetére
🫡
-
válasz
its_grandpa #20046 üzenetére
Ha kódot illesztesz be, előtte állítsd át a szerkesztőt a "régi szerkesztő"-re, mert akkor olvasható lesz a kód!
-
válasz
lanszelot #20029 üzenetére
Hogy kell egy function-t elindítani, de nem a loop-ban? Mert csak indulásnál kell lefusson.
A setup()-ba tedd be.
ugyanez a bekötés működik digispak -al, ott a videó a #19986 -ban
Ezért gondolom, hogy a program lesz a gond.Értsd meg, hogy a Digispark lapon van egy csomó kiegészítő elektronika néhány lábon (1,3,4). Tehát nem ugyanez a bekötés.
Írták az INPUT helyett az INPUT_PULLUP beépített felhúzó ellenállás használatát, valamint a gomb állapota beolvasásánál ne a HIGH legyen a gombnyomás, hanem a LOW (a gomb a +5V helyett a GND-re zárja a pin-t), és nem kell kiegészítő ellenállás (a prell-t ez nem szünteti meg), ezt már megfogadtad?
Új hozzászólás Aktív témák
- Azonnali fotós kérdések órája
- AMD K6-III, és minden ami RETRO - Oldschool tuning
- Audi, Cupra, Seat, Skoda, Volkswagen topik
- HiFi műszaki szemmel - sztereó hangrendszerek
- Kormányok / autós szimulátorok topikja
- Elektromos cigaretta 🔞
- Házimozi belépő szinten
- Milyen okostelefont vegyek?
- BestBuy ruhás topik
- TCL LCD és LED TV-k
- További aktív témák...
- Alphacool Rise Flat Reservoir D5 - pumpa nélkül
- Dell Pro 14 PC 14" FHD+ IPS Ultra 7 265U 16GB 1TB NVMe IR kam gar
- Újszerű LENOVO Ideapad 3 - 15.6" Full HD IPS - Ryzen 5-5500U - 8GB - 256GB SSD - Win11 - MAGYAR
- Western Digital Black 500GB 3,5"-os hdd-k (
- AKCIÓ ÚJ Bontatlan Macbook Pro 14 M4 MAX 14 32GPU 36GB 1TB Magyar billentyűzet Azonnal átvehető Deák
- TOP Gamer PC /Ryzen 7 9800X3D, 32GB DDR5 RAM, 1TB SSD, ROG RTX 4090/ akciós áron eladó! BeszámítOK!
- Új Asus Zenbook Pro Duo 14 OLED QHD 120Hz i7-12700H 16GB 1TB Nvidia RTX 3050Ti Studio Win11 Garancia
- AKCIÓ! 750W Seasonic PRIME TX-750 Titanium tápegység garanciával hibátlan működéssel
- Új Razer 16 QHD+ OLED 240Hz i9-14900HX 24mag 32GB 2TB SSD Nvidia RTX 4090 16GB 175W Win11 Garancia
- Telefon felvásárlás!! iPhone 13 Mini/iPhone 13/iPhone 13 Pro/iPhone 13 Pro Max
Állásajánlatok
Cég: PCMENTOR SZERVIZ KFT.
Város: Budapest
Cég: Promenade Publishing House Kft.
Város: Budapest