- lezso6: Nem látszik a kurzor Chrome alatt a beviteli mezőkben?
- vrob: Az IBM PC és a játékok a 80-as években
- eBay-es kütyük kis pénzért
- hdanesz: Elektromos autózás - első élmények
- D1Rect: Nagy "hülyétkapokazapróktól" topik
- Luck Dragon: Asszociációs játék. :)
- Lalikiraly: SÜNI energiaital.
- zebra_hun: Hűthető e kulturáltan a Raptor Lake léghűtővel a kánikulában?
- Gurulunk, WAZE?!
- sziku69: Fűzzük össze a szavakat :)
-
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
-
gyapo11
őstag
válasz
dave0825 #670 üzenetére
Olyat, amelyiken van DTR, ezzel reseteli az arduinot, és így tudja átküldeni a programot. Ha ez nincs, akkor kézzel kell nyomni egy resetet. Ez 5 láb (vcc, gnd, rx, tx, dtr), a hatodik nem tudom mi, de nem kell. Nekem 4 lábas van, még az arduino előtt vettem, és működik a kézi resettel.
-
gyapo11
őstag
válasz
dave0825 #653 üzenetére
Natív usb az lehet, hogy nem kell usb-serial chip a boardra, mert maga az atmega kommunikál az usb buszon. Ha a chip soros porton kommunikál, akkor az usb-vel nem tud mit kezdeni, ezért kell egy ftdi vagy a klónokon ch340 chip, ami a pc usb-je és az atmega serialja közötti interface.
A bootloader nem kell a programhoz, az csak azért van rajta, hogy könnyebb legyen programozni, nem kell hozzá más, mint a pc-re csatlakoztatni usb-vel. Az usb-n kapott programot a bootloader írja be a flashbe, majd futtatja. Ha nincs bootloader, akkor is lehet az avr-t programozni, de akkor programozó eszköz kell hozzá. Ilyen programozó eszköz lehet egy arduino is link, ennél jóval drágábbak általában a programozók.
Csupasz chipnek nem sok értelmét látom, mert egy pro mini 600 Ft körül van az ebayen, és ezen már ott vannak a körítés alkatrészek, benne van a bootloader, csak egy 300 ft-os usb-serial átalakító kell hozzá (mert az nincs rajta). Vagy 800 a nano, és akkor már egyből mehet az usb-re. -
gyapo11
őstag
válasz
dave0825 #614 üzenetére
Nem olyan bonyolult az. Az arduino kimenete megy a D-tároló bemenetére, ahány kimenetet akarsz pufferelni, annyi D-tároló kell. Majd ha már mindet kiírta a program, akkor egy újabb kimenettel aktiválod az áttöltést, ebben a pillanatban az összes kimenet beáll arra, ami az arduino kimenetein van.
Közben eszembe jutott egy másik megoldás is, a soros shift regiszter. Abba meg belépteted egyenként a biteket, itt egy példa: http://fritzing.org/projects/10-leds-and-2-shift-register -
gyapo11
őstag
válasz
dave0825 #612 üzenetére
Egyszerre nem lehet, az utasításokat egymás után hajtja végre. Olyat el tudok képzelni, hogy a kimenetek nem közvetlenül mennek a perifériákra, hanem D-tárolók vannak közben, és miután már az arduino összes kimenete be van állítva, egyszerre be lehet kapcsolni az áttöltést, így valóban egyszerre jelennek meg a tárolók kimenetein az adatok.
-
gyapo11
őstag
Nem feltétlenül kell megszakítással számolni, a loop egy ledvillogtatással 100 ezerszer fut le másodpercenként, a te programod nyilván hosszabb lesz, de ha csak 10 ezerszer fordul, akkor is lesz ideje számolni az impulzusokat.
Nyomógombot (mikrokapcsolót) simán kezelem bármelyik lábon, még kondi se kell. Az első lenyomott állapot érzékelése után 30 ms múlva kell leolvasni, ha még mindig benyomott, akkor jó, addigra az összes prell elmúlik. Ezután kell figyelni a fölengedést, nekem 40 ms volt kb. a leggyorsabb fölengedésem, de inkább 100 ms-re kell számítani. Fölengedésnél a prellel nem kell törődni, amint 1-be ugrik a bemenet az föl van engedve.
Ez az egyszeri megnyomás beolvasására igaz, ha nyomvatartott állapot is van, akkor kicsit más, én órát programoztam egy gombbal, és volt 500 ms-nél kisebb, 500-1500 közötti, és ennél hosszabb idő, ezek mind más funkciót töltöttek be.
Mivel számolnod kell az impulzusokat, a delay() függvényt felejtsd el, vannak timer libraryk delay nélkül, vagy akár programozhatod magad is, de a loop pörögjön. -
gyapo11
őstag
válasz
MineFox54 #578 üzenetére
Egy program van, persze annak lehet sok funkciója, és kívülről is lehet vezérelni, hogy éppen mely részek fussanak. Ha módosítasz a programon, azt újra fel kell tölteni, és nem lehet valami már ott levő mellé.
Viszont kerülő módszerrel lehet ügyeskedni, pl. külső eeprommal. Abban ugyan program nem lehet, de lehet mondjuk egy tokensorozat, amit az arduinon futó program értelmez és végrehajt. És ezt a külső eepromot le lehet húzni, beletölteni egy újabb tokencsoportot, és akkor már két program van benne, és a méretétől függően lehet sok is. Ha az arduinon futó sketch fel is tudja tölteni az eepromot, akkor már le se kell húzni, hanem magával az arduinoval feltölteni. -
gyapo11
őstag
Lejárt a szerkesztési idő, itt a javított, van még benne egy hiba, szóval csak körülbelüli mintának jó:
void setup() {
}
int tulcsordulas = 0;
unsigned long cel = 15724800; //fél év másodpercben 182*24*60*60
unsigned long start = millis() / 1000;
unsigned long eltelt = 0;
unsigned long reszido = 0;void loop()
{
if (tulcsordulas == 0)
{
reszido = millis() / 1000 - start;
}
else
{
reszido = millis() / 1000;
}
if (reszido < 0) //túlcsordult
{
tulcsordulas++;
reszido = millis() / 1000;
}
eltelt = reszido;if (tulcsordulas == 1)
{
eltelt += 4294967 - start;
}
if (tulcsordulas > 1)
{
eltelt += 4294967 - start + (tulcsordulas - 1) * 4294967;
}if (eltelt > cel)
{
//akció;
start = millis() / 1000;
tulcsordulas = 0;
eltelt = 0;
reszido = 0;
}
eltelt = 0;
} -
gyapo11
őstag
A millissel lehet bármekkora időzítést csinálni, csak le kell kezelni a túlcsordulást.
Pl. fél évente hajtja végre az "akciót":void setup() {
}
int tulcsordulas = 0;
unsigned long cel = 15724800; //fél év másodpercben 182*24*60*60
unsigned long start = millis() / 1000;
unsigned long eltelt = 0;
unsigned long reszido = 0;void loop()
{
reszido = millis() / 1000 - start;
if (reszido < 0) //túlcsordult
{
tulcsordulas++;
}
else
{
eltelt = reszido;
}if (tulcsordulas == 1)
{
eltelt += 4294967 - start;
}
if (tulcsordulas > 1)
{
eltelt += 4294967 - start + (tulcsordulas - 1) * 4294967;
}if (eltelt > cel)
{
//akció;
start = millis() / 1000;
tulcsordulas = 0;
eltelt = 0;
reszido = 0;
}
eltelt = 0;
}Nem próbáltam, a fordító nem jelzett hibát.
-
gyapo11
őstag
Esetleg lehetne nem interruptos megoldással, hanem tápkapcsolással, hogy a számláló kapcsolja rá a tápot az arduinora, az elvégzi amit kell és reseteli a számlálót, ettől megszűnik a tápja. Két bekapcsolás között a fogyasztása 0, viszont minden szükséges adatot föl kell írnia valahova, hogy a következő ébredéskor tudja hol hagyta abba.
Új hozzászólás Aktív témák
Hirdetés
- Path of Exile (ARPG)
- Házimozi belépő szinten
- Diablo IV
- Robot fűnyírók
- lezso6: Nem látszik a kurzor Chrome alatt a beviteli mezőkben?
- Megújult a PROHARDVER!
- Milyen asztali (teljes vagy fél-) gépet vegyek?
- AMD K6-III, és minden ami RETRO - Oldschool tuning
- Kerékpárosok, bringások ide!
- Vivo X200 Pro - a kétszázát!
- További aktív témák...
- Sony FE 28-70 mm F3.5-5.6 OSS
- PS5 Slim Disc 1TB 2026.10.08 GARANCIA
- Bomba Ár! Dell Latitude 3190 - Intel N4120 I 4GB I 128GB SSD I 11,6" HD I Cam I W11 I Garancia!
- Bomba Ár! Dell Latitude 3190 - Intel N4120 I 4GB I 64GB SSD I 11,6" HD I Cam I W11 I Garancia!
- Bomba ár! Dell Latitude E6520 - i7-2760QM I 8GB I 256SSD I Nvidia I HDMI I 15,6" HD+ I W10 I Gari!
- AKCIÓ! Google Pixel 9 Pro 5G 128GB 16GB mobiltelefon garanciával hibátlan működéssel
- AKCIÓ! nVidia Quadro P4000 8GB GDDR5 videokártya garanciával hibátlan működéssel
- Bomba ár! Dell Latitude E5570 - i5-6300U I 8GB I 256GB SSD I 15,6" FHD I HDMI I CAM I W10 I Gari!
- ÚJ Lenovo Legion Pro 5 16IRX9 - 16" WQXGA 165Hz - i5 14500HX - 32GB - 1TB - RTX 4060 - 3 év garancia
- MacBook felvásárlás!! Macbook, Macbook Air, Macbook Pro
Állásajánlatok
Cég: CAMERA-PRO Hungary Kft
Város: Budapest
Cég: Liszt Ferenc Zeneművészeti Egyetem
Város: Budapest