- D1Rect: Nagy "hülyétkapokazapróktól" topik
- Gurulunk, WAZE?!
- gban: Ingyen kellene, de tegnapra
- Luck Dragon: Asszociációs játék. :)
- sziku69: Fűzzük össze a szavakat :)
- Magga: PLEX: multimédia az egész lakásban
- Ivqkzy-: Eddig
- sziku69: Szólánc.
- Argos: Szeretem az ecetfát
- ubyegon2: Airfryer XL XXL forrólevegős sütő gyakorlati tanácsok, ötletek, receptek
-
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
-
happy555
aktív tag
Bár az alábbi kódban használt számlálóval (y) értelmét is veszti a millis() túlcsordulása, azért tettem bele egy szoftveres reset kódot.
Arduino lábait NE kösd össze közvetlenül !
#define uzemido 10
boolean x;
byte y=0;void setup() {
Serial.begin(9600);
Serial.println("Hello world!");
}void loop() {
if(((millis()/1000)&1) == x){//másodpercenként lesz igaz
x=!x;
y++;//számláló léptetése
Serial.println(y);
}
if(y>=uzemido){
Serial.println("RESTART...");
delay(20);//hogy legyen ideje kiírni a sorosportra
asm volatile (" jmp 0"); //szoftveres reset kódja
}
} -
happy555
aktív tag
-
happy555
aktív tag
Nahh, jól van !
egy longot (time) megspórolhatsz:
unsigned long lejarat;
void setup()
void loop()
if ((value != RFnyitas) && (value != RFzaras) && (nyitoGomb == LOW) && (zaroGomb == LOW)) // Tetlen allapot
{
value = mySwitch.getReceivedValue();
digitalWrite(iranyPin1, HIGH);
digitalWrite(iranyPin2, HIGH);
digitalWrite(jelzoPin, HIGH);
if (value == lampaON)
{
lejarat = millis()+2500;
digitalWrite(lampaPin, LOW);
}
if ((value == lampaOFF) || (time>lejarat))
{
digitalWrite(lampaPin, HIGH);
}
if(((millis()/500) & 1) == T) //tizedmásodperces ütemezés
{
T=!T;
digitalWrite(ledPin, T);
}
} -
happy555
aktív tag
Lehet sokféleképp, a Ds1302 abszolút nem indokolt.
Ha meg akarod akasztani ezidőre a program futását akkor a while az embered amin belül figyeled hogy elérte-e a meghatározott millis() értéket, és mellé teszed || (OR) a másik feltételed.if(.....){
unsigned long lejarat=millis()+15000;
while(millis()<lejarat || egyéb){
.........;
}
} -
happy555
aktív tag
-
happy555
aktív tag
-
happy555
aktív tag
Lehet csiszolgatni (fogod is
) bőven.
Már csak azért is, mert megfelel erre a feladatra, de mást így nem tud végezni, mivel megakasztod a programot egy led villogtatás loop-al.
Pedig míg nincs más dolga, kezelhetne esti fényt, mérhetne és küldhetne hőmérsékletet, kezelhetne csengőt, fénysorompót, stb......
Jahh és lehetne benne "kiskapu funkció" is, amikor nem nyit ki teljesen, csak hogy gyalog be lehessen menni. -
happy555
aktív tag
Majd kiderül, mindig szokott beesni 1-2
Talán inkább annyi, hogy egy kicsit egyszerűsíteni kellene a rendszert, hogy ne egy távírányítós modul reléje kapcsolgassa az arduino bemeneteit, és azt ne kelljen resetelni tápelvétellel.
Tisztább lenne illlesztened egy rf vevőt (meg akár adót is), és akkor nem kellene annyi relét kattogtatni.
6 helyett csak 2 relé kéne. 1 az irány kiválasztásához, és 1 a delej kapcsolásához. -
happy555
aktív tag
while(digitalRead(nyitoGomb) || digitalRead(zaroGomb));
Így is lehet írni, mert ha HIGH akkor igaznak minősül.while(!digitalRead(nyitoGomb) || !digitalRead(zaroGomb));
Így meg negálva van, vagyis ha LOW akkor minősül igaznak.(csak érdekesség)
-
happy555
aktív tag
Lesz baj ezzel így , több is :/
int lowlow = (nyitoGomb == LOW && zaroGomb == LOW) == true;
Ha egy változó csak igaz vagy hamis funkcióval kell hogy bírjon akkor elég ha boolean.
Program elején deklarálnám, és loopban csak állítanám az értékét.
DE! Ha do - while ciklust használsz akkor a feltétel tárgyát cikluson belül állandóan vizsgáltatnod kell, különben sose fog kiugrani belőle, így elakad a program.Inkább kihagynám a lowlow-t és while(digitalRead(nyitoGomb)==HIGH || digitalRead(zaroGomb)==HIGH);
Jó éjt!
-
happy555
aktív tag
Ha végálláskapcsoló valamelyik, amit figyelni akarsz, arra van több megoldás is, hogy kikapcsold a motort.
Ha jól értem amit szeretnél,pl.:
while (Gomb1 == HIGH && Gomb2 == LOW && Gomb3 == LOW)
{
if(digitalRead(ACvPin)==LOW){
digitalWrite(jelzoPin, HIGH);
delay(500);
digitalWrite(ledPin, HIGH);
delay(200);
digitalWrite(iranyPin1, HIGH);
delay(200);
digitalWrite(iranyPin2, LOW);
delay(500);
}
digitalWrite(ACvPin, HIGH);
}Ha a feltételek adottak, akkor lefut az egész. Viszont amint az ACvPin HIGH lesz ki fogja hagyni az if ciklus alatti utasításokat.
Aztán ha változik a feltétel, azonnal kiugrik a while ciklusból.
Így a delay-ek csak egyszer futnak le, és utána azonnal ki tud lépni.
Így gondoltad? -
-
happy555
aktív tag
válasz
spidersoft #305 üzenetére
Úgy emlékszem ~1ms/karakter alapjáraton a sebessége I2C-n.
-
happy555
aktív tag
válasz
spidersoft #303 üzenetére
Úgy tudom, I2C sebessége állítható.
-
happy555
aktív tag
Szóval:
Mint már írtam:Ha stabil 5V-ot adsz a Vcc-re, és ugyanazt az 5V-ot viszed a relékhez attól nem "megy át áramerősség" az arduinon!
Viszont ha pl 9V adsz a boardodra és a vcc-t viszed tovább, akkor lehet megsütöd azt a pirinyó feszstabját!Másképp:
Ha az arduinon lévő (DC bemenet) feszstabbal előállított 5V-al táplálod meg a reléket akkor lehet füst.Remélem érted, ha nem, akkor tényleg hagyjuk....
-
happy555
aktív tag
Szóval, ha az adapter bemeneten táplálod az arduinot akkor legalább 7V-ot kell adnod, mert onnan a feszstabjára kerül, amin ugyebár esni fog a feszültség....
A relén pedig az a jumper nem tesz mást, mint egy kapcsoló.
Ha zárod akkor behúz a relé, ha nem, akkor csak a visszajelző led gyullad ki.
Arduino "5V" és relé "VCC" összeköt, és mehet a tápodra! De az tényleg 5V legyen!! -
happy555
aktív tag
Kicsit tisztázzuk ki a dogokat!
Pontosan hova adsz, és hány voltot az arduinora?
Vin vagy Vcc?
Ha stabil 5V-ot adsz a Vcc-re, és ugyanazt az 5V-ot viszed a relékhez attól nem "megy át áramerősség" az arduinon!
Viszont ha pl 9V adsz a boardodra és a vcc-t viszed tovább, akkor lehet megsütöd azt a pirinyó feszstabját! -
happy555
aktív tag
válasz
DragonKid22 #237 üzenetére
Ezt most annyira nem értem ......
Milyen zavarokat szedett össze úgy, hogy szegényt lerántottad 100 ohm-al a földre? (kimenetet túlterhelve)
Hogy is került a láb lebegő állapotba?
Nem az volt a baj, hogy lemaradt a közös föld? -
happy555
aktív tag
válasz
DragonKid22 #235 üzenetére
Tedd ki a kódot (ha abban van a hiba)!
-
happy555
aktív tag
válasz
DragonKid22 #232 üzenetére
Szépen kijön rajta a 32mhz-es órajel
Nézd meg másik lábon, a többire Nincs Led kötve. ... -
happy555
aktív tag
válasz
DragonKid22 #230 üzenetére
Akkor méred ezt amikor rajta van a Fet?
-
happy555
aktív tag
válasz
DragonKid22 #228 üzenetére
Ugyan nem mértem, de te ezt mikor méred? Melyik lábán?
Vezérled?
Egyáltalán definiálva van a láb? -
happy555
aktív tag
válasz
Hyperion #221 üzenetére
Hello!
Nem "kész" arduino-t használok, hanem csak egy ATmega8-as ic-t, valahogy így .
Mivel 4.2v-os Lion akksiról (~600Ft) megy, nem kell a regulátor, az arduino-n elhelyezett ledek meg pláne... (zabálnak)
Az ATmega8a ic ~200Ft, 8k-s a memória, bőven elég.
Kb. 1 percig alszik két mérés közt, és ha változott a hőfok csak akkor küldi tovább az értéket, így ~4 hónapig teljesít egy töltéssel.Nekem is ez volt az alapproblémám hogy egy helyről nem lehet jól vezérelni.
Főleg ha több ember van a nappaliban, akkor be sem kapcsol a fűtés.... -
happy555
aktív tag
válasz
Hyperion #217 üzenetére
Akkor a vevő oldalon csak kapcsolva van ki/be a fűtés?
A hőmérők cserélgetik egymás közt hogy ki épp az aktív?
Milyen rádiót használsz?Nálam úgy lett, hogy a cirkónál van az lcd, ott követem nyomon, hogy hol hány fok van, ki az aktív.
A mérők elemmel mennek, és a periodikusan felvillanó led színéből lehet tudni, hogy kedvező-e a hőfok.
(beállítást potin lehet változtatni) -
happy555
aktív tag
válasz
Hyperion #213 üzenetére
Van kész nekem is ilyen projektem
Lcd-t nem raktam ugyan a jeladóba, mert az elemmel megy (atmega8-on) .......Simán fagyhat programod hibájából, amúgy nem kellene neki.
Van olyan progim ami a memória 90%-át megtölti, mégsem fagy.
Milyen funkciókat tud hogy így megtömted vele a chip-et? -
happy555
aktív tag
válasz
krisztianAMG #77 üzenetére
Nyogudtan vedd meg!
Ha működik akkor ugyanúgy mint az "eredeti".
Azért macskaköröm mert igazán nincs eredeti....
Mint anno a staedler ceruzát is rotring-nak hívtuk, és az is ugyanúgy fogott -
happy555
aktív tag
válasz
DrojDtroll #49 üzenetére
Egy részét én neten rendeltem (ebay), pl. 30 féle értekű ellenállás 20db mindegyikből.
Egy ilyen pakk mindig jó ha van, nem kell darabonként rohangálni a forintos alkatrészekért....
Amúgy meg minden egyebet itthon célszerű mert ha 3 vásárlást kivársz, már vége is a nyárnak
Ahogy hízik a projekt, úgy kerllenek az új kütyük hozzá...Hogy az akksi mit bír, ki lehet számolni!!
Csak meg kell mérni mennyi ampert hamikázik...ui:
Hello Robert Mester!!
-
happy555
aktív tag
Ha számít az ár akkor:
[NANO]
Persze várni kell pár hetet. ... -
happy555
aktív tag
Szerintem válts másik motorra.
Valami ilyesmi kellene mint az MG995.
Illetve akár ez jó is lehet, ha több kell mint 180 fok fordulás akkor meg lehet hackelni.DLL:
Amúgy a const int deklaráció lényege az hogy mivel az érték nem változik fix számként fordítja a progi, így kisebb lesz a kódod. (próbáld ki vele és const nélkül a fordítást)
A #define ugyanezt a célt szolgálja, csak ott akármilyen szöveget számokkal is használhatsz, amit behelyettesít a kódban. (space nélkül, összefüggőnek kell lennie!!)
pl.:
#define led_on digitalWrite(13,HIGH);később bárhol elég beírnod: led_on
-
happy555
aktív tag
Hello!
Legjobb lenne rotary encoder-t használnod!
Nekem ez bevált!
Pofon egyszerű két digital pin-t használ. Nyomógomb is egyben (+még egy pin-ért).
/poti amúgy is billeghet, azért is hanyagolom/
Új hozzászólás Aktív témák
Hirdetés
- D1Rect: Nagy "hülyétkapokazapróktól" topik
- Nyíregyháza és környéke adok-veszek-beszélgetek
- AMD K6-III, és minden ami RETRO - Oldschool tuning
- WLAN, WiFi, vezeték nélküli hálózat
- Kerti grill és bográcsozó házilag (BBQ, tervek, ötletek, receptek)
- Google Pixel topik
- BMW topik
- Formula-1
- Fejhallgató erősítő és DAC topik
- Moderátort keresek a fórumhoz!
- További aktív témák...
- BESZÁMÍTÁS! MSI SUPRIM X RTX 4080 16GB videokártya garanciával hibátlan működéssel
- BESZÁMÍTÁS! 6TB Seagate SkyHawk SATA HDD meghajtó garanciával hibátlan működéssel
- BESZÁMÍTÁS! 4TB Samsung 870 EVO SATA SSD meghajtó garanciával hibátlan működéssel
- BESZÁMÍTÁS! Intel Core i7 8700K 6 mag 12 szál processzor garanciával hibátlan működéssel
- BESZÁMÍTÁS! Intel Core i7 4790 4 mag 8 szál processzor garanciával hibátlan működéssel
- Csere-Beszámítás! Custom vizes számítógép játékra! I7 12700KF / RTX 3090 / 32GB DDR5 / 1TB SSD
- Bomba ár! Lenovo ThinkPad L480 - i5-8GEN I 16GB I 256GB SSD I 14" FHD I HDMI I Cam I W11 I Gari!
- Apple iPhone 14 Pro, Kártyafüggetlen, 1 Év Garanciával
- 119 - Lenovo Legion Pro 5 (16ARX8) - AMD Ryzen 7 7745HX, RTX 4070 (48 hónap garancia!) (ELKELT)
- Xbox Game Pass Ultimate kedvező áron, egyenesen a Microsoft-tól! - AUTOMATA BOLT
Állásajánlatok
Cég: PC Trade Systems Kft.
Város: Szeged
Cég: CAMERA-PRO Hungary Kft
Város: Budapest