- Samsung Galaxy S21 és S21+ - húszra akartak lapot húzni
- Megvan, milyen chipet használ a Pura 80 Ultra
- CMF Phone 2 Pro - a százezer forintos kérdés
- iPhone topik
- Honor Magic V2 - origami
- Milyen GPS-t vegyek?
- Android alkalmazások - szoftver kibeszélő topik
- Nothing Phone (3a) és (3a) Pro - az ügyes meg sasszemű
- Poco X3 Pro - hardverfrissítés
- Milyen okostelefont vegyek?
-
Mobilarena
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
- Kerékpárosok, bringások ide!
- iRacing.com - a legélethűbb -online- autós szimulátor bajnokság
- Samsung Galaxy S21 és S21+ - húszra akartak lapot húzni
- Sub-ZeRo: Euro Truck Simulator 2 & American Truck Simulator 1 (esetleg 2 majd, ha lesz) :)
- Háztartási gépek
- AMD Ryzen 9 / 7 / 5 / 3 5***(X) "Zen 3" (AM4)
- AMD Ryzen 9 / 7 / 5 7***(X) "Zen 4" (AM5)
- iPad topik
- Vezetékes FEJhallgatók
- Xbox tulajok OFF topicja
- További aktív témák...
- Dell Inspiron 5406 2-in-1i5-1135G7 16GB DDR4 3200 512GB NVME 14" FHD Érintőkijelző W11Pro
- Eladó MacBook Pro 14" M1 Pro (2021) 16/512 99% akku Makulátlan állapotban!
- Újszeru GIGABYTE G5 - 15.6" FullHD 144Hz - i7-13620H - 48GB - 1TB - RTX 4050 - Win11 - 1,5 év gari
- Eladó garanciás,új állapotu projektorom kihasználatlanság miatt!
- Acer Nitro V ANV15 - 15.6"FHD IPS 144Hz - i5-13420H - 16GB - 512GB - Win11 - RTX 3050 - 2,5 év gari
- Bomba ár! Lenovo ThinkPad X250 - i5-5GEN I 8GB I 128GB SSD I 12,5" HD I Cam I W10 I Garancia!
- ÁRGARANCIA!Épített KomPhone Ryzen 5 7600X 32/64GB RAM RTX 5070 12GB GAMER PC termékbeszámítással
- Alkatrészt cserélnél vagy bővítenél? Nálunk van, ami kell! Enterprise alkatrészek ITT
- ÁRGARANCIA!Épített KomPhone Ryzen 9 5900X 16/32/64GB RAM RTX 5070 12GB GAMER PC termékbeszámítással
- Bomba ár! HP ProBook 430 G8 - i5-1135G7 I 16GB I 256GB SSD I HDMI I 13,3" FHD I Cam I W11 I Gari!
Állásajánlatok
Cég: CAMERA-PRO Hungary Kft
Város: Budapest
Cég: PC Trade Systems Kft.
Város: Szeged