- sziku69: Fűzzük össze a szavakat :)
- Luck Dragon: Asszociációs játék. :)
- sziku69: Szólánc.
- gban: Ingyen kellene, de tegnapra
- Gurulunk, WAZE?!
- D1Rect: Nagy "hülyétkapokazapróktól" topik
- Elektromos rásegítésű kerékpárok
- Argos: Szeretem az ecetfát
- zebra_hun: Hűthető e kulturáltan a Raptor Lake léghűtővel a kánikulában?
- eBay-es kütyük kis pénzért
-
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
-
válasz
Undoroid #20825 üzenetére
Szia!
Az Uno-n sértetlen marad a bootloader. Ami történik fele, az az, hogy felkerül rá egy program aminek köszönhetően egy ISP programozóvá változtathatod magát az UNO-t.
Ezzel az ISP programozóval fog írni egy bootloadert a 3D nyomtatóra, aminek köszönhetően a 3D nyomtató mikrokontrollere programozható lesz Arduino környezetben. (Gyárilag csak ráírják a firmware-t, nincs rajta booloader). A Marlin firmware viszont már Arduinoban vagyon írva, így utána feltölthető a nyomtatóra, ha az rendelkezik a megfelelő bootloaderrel.
-
biker
nagyúr
válasz
Undoroid #20728 üzenetére
akkor ismét: vadonatúj arduino uno, 10db megvéve
vadonatúj PCB 10db elkészült jlcpcb) rátéve, dobozba betéve, gombok rátéve, program feltöltve, 7-es lábon mintha a gomb folyamatosan nyomva lenne
reaupload, ugyanaz, gombok lehúz, ugyanaz, kimér, gomb nincs nyomva, pcb nem zárlatos, nincs test és a 7-es pin közt Mohm alatt semmi.
Ismét táp, folyamatos jel
program kikommentel, jóMásik 9 panel jó, ugyanaz a kód, ugyanaz a batch PCB és ugyanaz a csomag uno-ból, mert 10-et vettem
Sehol nem írtam használt valami javítását. csak olyat, hogy sorozatgyártás folyik, és egy panel lett ilyen.
-
biker
nagyúr
válasz
Undoroid #20723 üzenetére
Pontosan, eddig 25db készült, ma 10db.
Semmi nem változott, és a gombot lehúzva is ilyen.
A mai első felprogramozású panel lett ilyen, félreraktam, még 9-et felprogramoztam, hibátlan, visszamentem az elsőre, újra felnyomtam a programot, akkor is folyamatosan nyomva érzi (7-es pin amúgy)
Lehúztam a gombot, kisípoltam, tökéletes, akkor sípol ha nyomom
Panelen kimértem, Mohm az ellenállás, nincs zárlat rajta.
Ha tápot adok neki és nincs rajta gomb akkor is folyamatosan nyomva érzékelia programozás ugyanabból a forrásból ment, be se zártam az ablakot, csak új panel, upload, új panel, upload
A kártya amit csináltam rá, szintén kimérve, jó, erre megy a gomb egy csatlakozónkikommenteltem a programból a gombot, minden rendben, visszarakom, nem jó
ViZion: olvasd el mindkét esetleírást, 10x uploadoltam ugyanazt a forrást, biztos elállítódhatott közben az érték...
-
olli
tag
válasz
Undoroid #20623 üzenetére
esp32
c:\Users\win11\AppData\Local\Arduino15\packages\esp32\hardware\esp32\2.0.9\libraries\WiFi\
c:\Users\win11\AppData\Local\Arduino15\packages\esp32\hardware\esp32\2.0.9\libraries\SPI\
avr
c:\Users\win11\AppData\Local\Arduino15\packages\arduino\hardware\avr\1.8.6\libraries\SPI\
saját
c:\Arduino\libraries\
IDE2.1
c:\Program Files\Arduino IDE\
A saját telepítési útvonalaidat nézd át, ugyan az a könyvtár előfordulhat több helyen, ill. látni kell a meglevő könyvtárakat. -
Undoroid
őstag
válasz
Undoroid #20478 üzenetére
Találtam valami hasonlót, ami "kis" módosítással jó is lehetne (?) erre a célra: link
Megvan minden alkatrészem az eredeti áramkörhöz, de elakadtam (ahogy keresés közben láttam, mások is) az egyik library-nál! Tegnap délután belekezdtem az áramkör összeépítésébe, majd éjfél utánig kerestem a könyvtárakat...lehet, hogy már fáradt voltam és ezért nem találtam meg: Wire.hMennyire lenne ezen járható dolog az, hogy a DHT-szenzort kiemelve és a helyére betéve (a program átírásával) a feszültségmérőt...és az még működne is? Grafikus kijelzés és az adatok eltárolása is meglenne...Tudom, hogy a DHT egészen máshogy működik, de van-e erre lehetőség? Az uC jelen esetben nálam egy Arduino Nano lenne! Van hozzá elegendő bemenete? Vagy ezt a vonalat engedjem el és maradjak az eddigi ötleteknél?
-
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. -
its_grandpa
tag
-
Jadenn
csendes tag
válasz
Undoroid #20454 üzenetére
Igen, nekem az STM32 3,3V-os de tudod használni a nokiát uno vagy nanoval is. Én is azzal kezdtem. Csak annyit kell tenni, hogy megkeresed az uno/nano GND és +3,3V lábát ez lesz a nokia tápja, és néhány 10KΩ-os ellenállásra, egy 1KΩ-os ellenállásra és egy 220Ω-os ellenállásra lesz szükséged (háttérvilágításhoz).
Először is, a 10KΩ-os ellenállásokat sorba kell kötni az RST, DC, DIN és CLK érintkezőkkel, míg az 1KΩ-os ellenállást a CE érintkezővel. -
lanszelot
addikt
válasz
Undoroid #20345 üzenetére
Semmi rossz hangnemet nem irtam. A mosolygós arccal jeleztem is, hogy vicceltem. Én se vettem magamra mikor a videós viccek jöttek. Mert ott volt a fej és egyértelmű hogy az viccnek lett szánva. Nem írtam nagybetűvel, se kioktatón. Próbáltam segíteni. Nem értem miért egyből a rosszat feltételezitek. A link tényleg nem működik, telefonról csinál ilyet, csak elfelejtettem vissza ellenőrizni.
-
op9
aktív tag
válasz
Undoroid #19426 üzenetére
Szia,
Köszi szépen az infókat!
A konverterről sokat nem igazán tudok, nekem 4.77-re kellett állítanom, h 4.99 legyen a multiméterem szerint, más furcsaságát eddig nem vettem észre. Elvileg 16V és 3A-t tud, én csak 5V-ig, és 0.5A-ig használtam, de odafigyelek rá.
A szalag a nyilak szerint jó irányba kapja a jelet, és kb. fél óráig tökéletesen működtek, vszínűleg akkor az alacsony tápfesz és magas data feszültség nem tett jót.
Köszi a linkeket! -
válasz
Undoroid #18867 üzenetére
ugyanez az összehuzalozás egy NANO-val! Persze, ha ez lehetséges és nincs további ütközés a környező alkatrészekkel!
Azt ne próbáld meg, mert a nano 5V-os jelszinttel dolgozik, az SD kártya pedig a 3,3V-ot szereti. Szintillesztés nélkül megsüti. Az ESP lapok 3,3V-osak, azokra mehet közvetlenül is.
-
its_grandpa
tag
válasz
Undoroid #18829 üzenetére
Pár sorhoz kellene hozzányúlni.
#include <Adafruit_BMP085.h> helyett #include <SFE_BMP180.h>
Adafruit_BMP085 bmp = Adafruit_BMP085(10085); helyett a példányosításkor SFE_BMP180 pressure; //Creating an object
Persze a bmp helyett a pressure-t kell használnod a kódban.
Jópár BMP180 library-t találtam, kérdés melyiket akarod használni, amit írtam az Adafruit.
Van yt video és számtalan tutorial a BMP180-hoz. -
-
válasz
Undoroid #18032 üzenetére
nem állítja meg az akku töltését, ha már elérte a beállított max értéket!
Biztos vagy benne, hogy
1. eddig megállította?
2. a vezérlővel van a baj, és nem az akkupakkal?A Li-ion töltés a felvett áram alapján állítja le a töltést (amikor az a névleges töltési áram 1/10-e alá csökken). Ha az egyik cella zárlatos lett, a felvett áram nem tud lecsökkenni arra a szintre, ahol a vezérlő lekapcsolna.
-
daninet
veterán
válasz
Undoroid #18005 üzenetére
Az a hiba, hogy foglalt az eszköz. Mint amikor pl fur a Cura vagy Pronterface és "ellopja" a com portot az IDE-től. De csak 2.0 alatt. 1.8 megállítja a soros monitort és megy a feltöltés. A programozón folyamatosan világít a zöld led, amíg nem zárom be a tab-ot nem tudok feltölteni. Nagyon bug kinézete van. Az a krixkraksz meg végképp
-
Janos250
őstag
válasz
Undoroid #17788 üzenetére
"Még akkor is, ha kendácsolt! "
Nem annyira kendácsolt módszer. Például az autó ablaküveg mozgató is így működik. Nem azt figyeli, hogy felment-e teljesen, hanem, hogy elakadt-e. Ezzel az is megoldódik, hogy ha a gyerek keze ottmaradt, attól is megszoruljon, és megálljon. -
válasz
Undoroid #17788 üzenetére
Egyébként jobban belegondolva, valahogy úgy van megoldva a mechanika abban az 5V stepperben, hogy az áttétel ellenére - emlékeim szerint! - kézzel el lehet tekerni, tehát valahol csúszik valami benne. Szóval ez alapján ki lehet hagyni a végállás érzékelést, és a mechanikára hagyatkozni, ha úgy alakul.
-
válasz
Undoroid #17768 üzenetére
A LiquidCrystal library, amit Te keresel. A library példaprogramjai közt pedig biztosan találsz választ a kérdésekre. Ha elakadsz, segítünk.
Arra figyelj, hogy az 5V stepper motornak olyan lehetetlen belső áttétele van *, hogy nem fogsz egész számú osztót találni mondjuk 1° kitéréshez.
* A belső áttétele papíron 1:64, ami a valóságban 1:63.68, ez a gyakorlatban azt eredményezi, hogy 2048 lépés helyett 2037.5 lesz egy 360°-os teljes fordulat -
Janos250
őstag
válasz
Undoroid #17768 üzenetére
Én Aryes javaslata mellett vagyok! Hirtelen jött áramszünet, stb. miatt bármikor előfordulhat, hogy ismeretlen lesz a helyzete. A végálláskapcsolót én mindenképpen betenném. Vagy egy egyszerű mikrokapcsolót, ami például a 3D nyomtatóknál is prímán működik, vagy egy szintén könnyen kezelhető opto kaput. Persze lehet nélküle is megoldani, ha nagyon akarod, de akkor, ha valami miatt elvész a szinkron, bajlódni kell vele.
-
válasz
Undoroid #17759 üzenetére
Tehát nem fordulhat elő, hogy valaki kikapcsolt állapotban kézzel elmozdítja, vagy véletlenül nekimegy, vagy csak a gravitáció vagy más miatt elmozdul? Vagy véletlenül úgy veszed el a tápot, hogy nem a végálláson áll meg a mechanika, hanem valahol félúton?
Ok, ha Te mondod...Tulajdonképpen milyen kód az, ami hiányzik? A stepper mozgatására joystick segítségével már van kódod. Az LCD kijelzőhöz kell kód?
-
válasz
Undoroid #17754 üzenetére
Az a baj az elképzeléseddel, hogy nem tudod megúszni a végállás figyelést semmiképpen. Mivel a stepper motor pozíciója bekapcsoláskor ellenőrizhetetlen, ha te egy feltételezett pozícióhoz képest szeretnéd irányítani a motort, az előbb-utóbb szinte biztosan károsodáshoz fog vezetni.
Legalább 1 végállás kapcsolóra szükséged van, ha nem is kettőre, ennek hiányában vmi optikai módszerre a pozíció figyeléshez. -
Tankblock
aktív tag
válasz
Undoroid #17727 üzenetére
Szia
A linkelt mikrokapcsolós végállásfigyelést be tudod tenni ....
Szerintem minden infod megvan,A léptetés előtt megnézed, hogy a kapcsoló be van -e kapcsolva, ha igen akkor nem lépsz arra. Ez mind a két irányba működik, és relatíve olcsó. A kapcsoló lehet optokapu is....
Mire lenne még szükséged ?
-
Tankblock
aktív tag
válasz
Undoroid #17718 üzenetére
Ha az elforgatás mértéke érdekel, akkor annyit kell tudnod, hogy 1 step az hány fok, és azt hogy steppet lépsz vagy microsteppet. --> Motor datasheet segít 1.8 fokos vagy más.
Ugye a microstep az egy step felosztva annyiad részre ahány microstep.
Microsteppet normál esetben csak motorvezérővel fogsz tudni megoldani, annke ez paramétere lesz valahol....Ezek után ha tudod a loop elején h jobbra vagy balra forgatod a steppert, ki tudod számítani a fokot is... Az LCDre kiírod majd kiadod motornak a forgás fvg h merre is csináljon mit....
-
Undoroid
őstag
válasz
Undoroid #17717 üzenetére
Kicsúsztam
a szerkesztési időből, mire megtaláltam a videót: KLIKK
" Sajnos a videó kommentjei közötti "Code?" kérdésre nem érkezett válasz! " Vagyis érkezett, rosszul emlékeztem: " The test code had been deleted!!!! " Ezzel, ugye egy olyan kezdő, mint Én nem tud elindulni...belógatta a mézesmadzagot ezzel a videóval és törölte a kódot!Valaki tudna valami támpontot adni ezzel kapcsolatban? Nem kérem senkitől, hogy oldja meg helyettem a feladatot, mindössze iránymutatásra lenne szükségem...
Mielőtt belebonyolódnánk az egészbe: nem kell a uC-nek megjegyezni az utolsó értéket! Azt minden bekapcsoláskor 0-ról kezdene számolni!
Előre is megköszönném mindenkinek a Rám fordított idejét...ha lesz ilyen!
-
Janos250
őstag
válasz
Undoroid #17706 üzenetére
Szia!
Megnéztem, töltöttem le ilyen fájlt, de sokra nem jutottam.
Esetleg az Alin a panel képe alulról?
https://www.aliexpress.com/item/1005002740079191.html
vagy felülről?
https://www.aliexpress.com/item/4001276857056.htmlVagy erről a képről:
https://sensorkit.joy-it.net/de/sensors/ky-023Esetleg erről a képről, itt vannak mértek, lehetne arányosítani.
https://lastminuteengineers.com/joystick-interfacing-arduino-processing/Aztán persze az is elgondolkodtató, hogy ha VÁM-mal, ÁFA-val, szállítással 500 forintért bejön Kínából, érdemes-e sajátot csinálni.
-
válasz
Undoroid #17671 üzenetére
Azt érdemes meghosszabbítani - szerintem -, ahol kisebb problémát okoz a feszültségesés / nagyobb ellenállás a hosszabb vezetéken. A driver szerintem jobban tolerálja az 5V alá csökkenő bemenő jelszintet, vagyis én az A-t választanám, ahogy írod, a driverhez közel eső lehúzó ellenállásokkal és árnyékolt kábellel. Egy UTP kábel például pont meg is felel, igazából ekkora teljesítmény mellett a B-re is.
-
válasz
Undoroid #17669 üzenetére
Nem tudom, nem hiszem! Ez a joy teljesen úgy néz ki, mintha teljesen új lenne!
Ez nem attól függ, minden analóg dolog kalibrálásra szorul kisebb vagy nagyobb mértékben. Ha a tiéd középállásban nem 500 és 523 közti értéket ad, akkor driftelni fog.
Tehát a kérdésed szerint nem változik, ugyanazokat a tekercseket gerjeszti. Az üzemi (100%-os) fényerő helyett max. 5% körül lehet a halvány jel.
Ki kéne próbálni, hogy a driver mind a 4 bemenetét lehúzod, és a földre zárod őket. Ha akkor is látod a fényt, akkor a driver chip hibás. Az uln2003a egy darlington array, 7 bemenet van rajta, de csak 4 kimenetére van kötve valami. Próbáld meg, hogy a többi 3 bemenetet is a földre zárod, hátha gerjednek valamitől, és ezért viselkedik furán a chip.
-
Undoroid
őstag
válasz
Undoroid #17545 üzenetére
Sziasztok!
Végül EZT a projektet építettem meg, ami szépen is dolgozik...viszont megfigyeltem valami furcsaságot a működésben: a furcsaság a driver panelon figyelhető meg! Amikor a joy-al irányítom a forgás irányát, akkor a visszajelző LED-ek szépen jelzik a motor tekercseinek gerjesztését. Ha viszont a joy alaphelyzetben van, akkor ugye nincs motormozgás, de az indikátorokon halvány jelzést lehet látni, vagyis a tekercseket -csökkentett teljesítménnyel ugyan, de- ekkor is folyamatosan gerjeszti az áramkör. Maga a motor láthatóan erre már nem reagál!
Ez csak szerintem nem a helyes működés? Nem biztos, hogy jót tesz a drivernek és a motornak?
Kapcsoló üzemű tápegységgel élesztettem! Lehet, hogy a tápban jelenlévő nagyfrekvenciás zavarjelek ennek a jelenségnek a forrása?Korábban már használtam ezt a drivert és a hozzá tartozó motort, de akkor a betáp több darab 18650-es akku volt és nem volt semmi halvány alapjel.
-
vegyszer
addikt
válasz
Undoroid #17634 üzenetére
Tehát akkor annyi a különbség, hogy a két jel épp ellentétes egymással.
No ezt eddig így leírva nem láttam. Köszi szépen a megfejtést!Mivel engem az, hogy van jel/nincs jel abszolút értelemben nem érdekel, kizárólag a változása, nekem mindkettő metódus tökéletesen megfelelő lehet.
-
-
Undoroid
őstag
válasz
Undoroid #17538 üzenetére
Sziasztok szakik!
Régebben foglalkoztat az a gondolat, hogy ezt a próbafeladatot kissé megváltoztassam:
File name: 26_steppermotor.ino
Description: You can observe the stepper motor is fast and
forward in a circle, next the stepper motor is
slow and reverse in a circle.
Website: www.adeept.com
E-mail: support@adeept.com
Author: Tom
Date: 2015/05/02
***********************************************************/
int Pin0 = 8;//definition digital 8 pins as pin to control the IN1 (ULN24L01)
int Pin1 = 9;//definition digital 9 pins as pin to control the IN2 (ULN24L01)
int Pin2 = 10;//definition digital 10 pins as pin to control the IN3 (ULN24L01)
int Pin3 = 11;//definition digital 11 pins as pin to control the IN4 (ULN24L01)
int _step = 512;
int _speed = 1;
void setup()
{
pinMode(Pin0, OUTPUT);//Set digital 8 port mode, the OUTPUT for the output
pinMode(Pin1, OUTPUT);//Set digital 9 port mode, the OUTPUT for the output
pinMode(Pin2, OUTPUT);//Set digital 10 port mode, the OUTPUT for the output
pinMode(Pin3, OUTPUT);//Set digital 11 port mode, the OUTPUT for the output
}
void loop()
{
Speed(15);//Stepper motor speed = 15 fast (note:speed from 1 to 15)
Step(512);//Stepper motor forward 512 steps ---- 360 angle
delay(2000);// delay 2S
Speed(1); //Stepper motor speed = 1 slow (note:speed from 1 to 15)
Step(-512);//Stepper motor backward 512 steps ---- 360 angle
delay(2000);//delay 2S
}
void Speed(int stepperspeed)//set Stepper speed
{
_speed = 15 - stepperspeed;
if( _speed<1){
_speed = 1;
}
if( _speed>15){
_speed = 15;
}
}
void Step(int _step)//Stepper motor rotation
{
if(_step>=0){ // Stepper motor forward
for(int i=0;i<_step;i++){
setStep(1, 0, 0, 1);
delay(_speed);
setStep(1, 0, 0, 0);
delay(_speed);
setStep(1, 1, 0, 0);
delay(_speed);
setStep(0, 1, 0, 0);
delay(_speed);
setStep(0, 1, 1, 0);
delay(_speed);
setStep(0, 0, 1, 0);
delay(_speed);
setStep(0, 0, 1, 1);
delay(_speed);
setStep(0, 0, 0, 1);
delay(_speed);
}
}else{ // Stepper motor backward
for(int i=_step;i<0;i++){
setStep(0, 0, 0, 1);
delay(_speed);
setStep(0, 0, 1, 1);
delay(_speed);
setStep(0, 0, 1, 0);
delay(_speed);
setStep(0, 1, 1, 0);
delay(_speed);
setStep(0, 1, 0, 0);
delay(_speed);
setStep(1, 1, 0, 0);
delay(_speed);
setStep(1, 0, 0, 0);
delay(_speed);
setStep(1, 0, 0, 1);
delay(_speed);
}
}
}
void setStep(int a, int b, int c, int d)
{
digitalWrite(Pin0, a);
digitalWrite(Pin1, b);
digitalWrite(Pin2, c);
digitalWrite(Pin3, d);
}
Ennek a programnak annyi jelenleg a feladata, hogy a szervómotort az egyik irányba 'gyorsan' forgatja, majd a beprogramozott elfordulás után, lassan visszaforgatja a kiindulási pozícióra, majd újra elindul 'gyorsan' a másik irányba...és végtelen ciklusban így ismétli magát!
Annyit szeretnék összehozni / változtatni ezen, hogy a programot alapból egy PS2-es joy-al irányítanám a forgás irányát- és sebességét (lassú - gyors bőven elég) Az elfordulási szöget nem kell figyelni, mert azt mechanikusan fogom korlátozni.
Az első gondolatom az volt, hogy alapból a Joy-al lehetett volna mozgatni a szervót és a Joy kapcsolójával átváltott volna a mozgatás autómata üzemre...viszont átváltáskor figyelni kellett volna az aktuális helyzetet, így azt inkább hanyagolnám.Felesleges ennyire túlbonyolítani ezt a feladatot. Ha majd jobban megy az ilyen feladatok megoldása, akkor talán már menni fog ez saját 'kútfőből' is!
Találtam a NET-en ilyen feladatot, de ott más szervókat alkalmaznak.
Valakinek van kedve segíteni ennek a megvalósításában?
-
válasz
Undoroid #17496 üzenetére
jelszóval védett dolgok
Úgy kb. 20 éve sok mobilos weboldalt készítettem, a magyar ékezetekkel évekig csak a probléma volt, akkor szoktam le róla, hogy bármiben is magyar ékezetet használjak. Ha jelszó, akkor választok inkább az ASCII táblázatban megtalálható bármilyen karaktert, mint hogy vmi kódolási anomália miatt ne tudjak többet belépni, ahová kell.
-
Janos250
őstag
válasz
Undoroid #16899 üzenetére
Például egy lehetséges megoldás:
void color (unsigned char red, unsigned char green, unsigned char blue,
int redPin, int greenPin, int bluePin);
{
analogWrite(redPin, 255-red); // PWM signal output
analogWrite(greenPin, 255-green); // PWM signal output
analogWrite(bluePin, 255-blue); // PWM signal output
} ;hívás:
color(255,255,0,11,10,9);
color(255,255,0,6,5,3);
stb. -
válasz
Undoroid #16899 üzenetére
Az irány jó amerre indultál. Vagy csinálj egy void color2(...) eljárást, vagy a color(...)-t változtasd meg úgy, hogy a két(x3) kimenetekre más értéket tehess.
Gyomláld ki a hibákat amiket kapsz - ezek valószínűleg azért keletkeznek mert:
- nem tehetsz a kódba kétszer ugyanazon névvel void-ot, a másik legyen color2
- ha az argumentumokon változtatsz, akkor mindenütt, ahol meghívod a void-ot, ott bővítened kell az argumentumok számát, hogy megfeleljen a deklaráltnak.void color (unsigned char red, unsigned char green, unsigned char blue)// the color generating function
{
analogWrite(redPin, 255-red); // PWM signal output
analogWrite(greenPin, 255-green); // PWM signal output
analogWrite(bluePin, 255-blue); // PWM signal output
}
void color2 (unsigned char red, unsigned char green, unsigned char blue)// the color generating function
{
analogWrite(red2Pin, 255-red); // PWM signal output
analogWrite(green2Pin, 255-green); // PWM signal output
analogWrite(blue2Pin, 255-blue); // PWM signal output
} -
Undoroid
őstag
válasz
Undoroid #16856 üzenetére
Sziasztok!
Nos, elakadtam és ismét kérdeznék.
A példafeladatot módosítva idáig jutottam el:
/***********************************************************
File name: 09_rgbLed.ino
Description:Control the RGB LED emitting red, green, blue, yellow,
white and purple light, then the RGB LED will be off,
each state continues 1s, after repeating the above
procedure.
Website: www.adeept.com
E-mail: support@adeept.com
Author: Tom
Date: 2015/05/02
*************************************************************/
int redPin = 11; // R petal on RGB LED module connected to digital pin 11
int greenPin = 10; // G petal on RGB LED module connected to digital pin 9
int bluePin = 9; // B petal on RGB LED module connected to digital pin 10
int red2Pin = 6; // R petal on RGB LED module connected to digital pin 6
int green2Pin = 5; // G petal on RGB LED module connected to digital pin 5
int blue2Pin = 3; // B petal on RGB LED module connected to digital pin 3
void setup()
{
pinMode(redPin, OUTPUT); // sets the redPin to be an output
pinMode(greenPin, OUTPUT); // sets the greenPin to be an output
pinMode(bluePin, OUTPUT); // sets the bluePin to be an output
pinMode(red2Pin, OUTPUT); // sets the redPin to be an output
pinMode(green2Pin, OUTPUT); // sets the greenPin to be an output
pinMode(blue2Pin, OUTPUT); // sets the bluePin to be an output
}
void loop() // run over and over again
{
// Basic colors:
color(255, 0, 0); // turn the RGB LED red
delay(1000); // delay for 1 second
color(0,255, 0); // turn the RGB LED green
delay(1000); // delay for 1 second
color(0, 0, 255); // turn the RGB LED blue
delay(1000); // delay for 1 second
// Example blended colors:
color(255,255,0); // turn the RGB LED yellow
delay(1000); // delay for 1 second
color(255,255,255); // turn the RGB LED white
delay(1000); // delay for 1 second
color(128,0,255); // turn the RGB LED purple
delay(1000); // delay for 1 second
color(0,0,0); // turn the RGB LED off
delay(1000); // delay for 1 second
}
void color (unsigned char red, unsigned char green, unsigned char blue)// the color generating function
{
analogWrite(redPin, 255-red); // PWM signal output
analogWrite(greenPin, 255-green); // PWM signal output
analogWrite(bluePin, 255-blue); // PWM signal output
analogWrite(red2Pin, 255-red); // PWM signal output
analogWrite(green2Pin, 255-green); // PWM signal output
analogWrite(blue2Pin, 255-blue); // PWM signal output
}
Annyit tettem, hogy lemásoltam / megdupláztam a megfelelő parancssorokat és más neveket is adtam nekik. Ekkor a 9-10-11-es kimenet és a 3-5-6-os kimenet pontosan ugyanazokat a jeleket produkálták. Amikor ezt a sort (
void color (unsigned char red, unsigned char green, unsigned char blue)// the color generating function
{
) kezdtem el ugyanúgy lemásolni / módosítani, akkor viszont megannyi hibaüzenet fogadott feltöltés közben. Megpróbáltam kiegészíteni ilyenre is:void color (unsigned char red, unsigned char green, unsigned char blue, unsigned char red2, unsigned char green2, unsigned char blue2)// the color generating function
Erre szintén újabb hibaüzenettel gazdagodtam...A feladatom az lenne, hogy a 3-5-6-os kimeneten és a 9-10-11-es kimeneten egyidőben, de különböző jeleket (sima RGB-LED-es színkeveréseket és villogásokat) szeretnék futtatni. A nagy kérdés pedig az, hogy hogyan?
A színek létrehozása, keverése, átúsztatása (a color - delay párossal) "megy" , de nem a legszebb- és a legjobb tárhelyhasználattal, de működik!
A fő problémám az, hogy nem tudom külön-külön kezelni a két kimenetet. Nem tudok olyan parancssort létrehozni, ami ezt megoldaná.
Remélem, hogy tudtok segíteni?!
-
válasz
Undoroid #16829 üzenetére
Boldog új évet neked is! (Hol voltál 9 napig?!
)
1. Igen.
2. Ezt csak empirikusan fogod tudni megállapítani. Ha a két modul egy gyártótól származik, akkor van rá esély, hogy a két library bizonyos mértékig kompatibilis egymással, és ha nem akarsz olyan parancsokat küldeni, amit a másik modul nem ért, akkor elvileg működhet. Ha mégsem, akkor a megfelelő lib beszerzése és a kód megfelelő sorainak a javítása lesz a megoldás. Ha ez sem működik, akkor sajnos marad a reverse engineering: bele kell nézni mindkét library-be, és átírni az egész programot.
-
Undoroid
őstag
válasz
Undoroid #16790 üzenetére
Sziasztok & Boldog Újévet minden szakinak!
Újabb két kérdéssel fordulnék hozzátok:
1: A korábbi példával kapcsolatban szeretnék kérdezni. Az UNO másik három (3, 5, 6 pin) PWM-es kimenetet szeretném aktiválni és teljesen más jeleket produkálni úgy, hogy egyszerre fussanak le (9, 10, 11 pin) és ne várjanak egymásra! Van egy halvány elképzelésem, de ez is a "fix értékekkel" működő, tárhelypocsékolós megoldás lenne...
2: Van ez a kapcsolás és a kapcsolási rajzon szereplő rádió modul (SI4730) és a kódban szereplő ( #include <Si4735.h> ) hivatkozás különbözik. Vajon ezek menni fognak? Az Si4735 adatlapján a másik is meg van említve...nyilván a 4735 'többet tud' a táblázat szerint és ezért másképpen kell a kódban kezelni, vagy annyira kompatibilis egymással a kettő, hogy simán menni fog? Szerintetek?
Köszi a válaszokat!
-
ekkold
Topikgazda
válasz
Undoroid #16765 üzenetére
Akkor a
static colors[]={255, 0, 0, 0,255, 0, stb.....}
helyett
static uint8_t colors[]={255, 0, 0, 0,255, 0, stb.....}
sort írj.
Ki tudja még mit néztem el, az a lényeg, hogy értsd a működését. Az időpontoknak sem kell fix 1 másodpercenként jönni, azt is veheti pl. egy fentihez hasonló táblázatból. Sőt akár a fenti táblázatban is lehet az RGB mellett egy következő időpontot mutató negyedik érték is.
Aztán ha kicsit szebb kódot akarunk akkor lehetne pl. struktúratömböt is használni... -
ekkold
Topikgazda
válasz
Undoroid #16759 üzenetére
Valami ilyesmi irányba kellene menni, a delay()-t kihagyni, és csak figyelni az időt:
//***************************************************
void szinbeallitas(){
static uint_16t counter=0; //hívás számláló, gyak másodpercenként fog lépni
static colors[]={255, 0, 0, 0,255, 0, stb.....} //itt fel lehet sorolni az összes szint amit meg akarsz jeleníteni
counter += 3;//hármasával léptetjük, mert RGB-t szedünk ki a tömbből
color(colors[counter], colors[counter+1], colors[counter+2]); //színbeállító fv. hívása
} //end fv
//***************************************************
loop(){
static uint32_t time1=0; //ebben lesz a hívás ideje
uint32_t actualtime1; //ebben lesz az aktuális időpont
actualtime= millis(); //aktuális időpont tárolása
if ((actualtime - time1) >= 1000){ //ha eltelt egy másodperc
time1 = actualtime; //megjegyezzük a hívás időpontját
szinbeallitas(); //sajat szinbeállito függvény hívása másodpercenként.
} //end if
// itt lesznek a program további feladatai, pl. nyomógombok figyelése stb...
} //end loop
//***************************************************
-
ekkold
Topikgazda
válasz
Undoroid #16755 üzenetére
Az A és B program egy-egy függvény legyen, amit a loop() meghív a gomb vagy kapcsoló állapotától függően.
Tehát az első kulcsszó függvény-eket kell írni.A működési idő: A millis() függvény megadja a bekapcsolástól eltelt időt millisecundum-ban. Kb. 54 napig tud számolni mielőtt túlcsordul a számláló, azaz átfordul, és újra nullától kezdve számol. Tehát egy feltétellel időnként megnézed a loop()-ban , hogy eltelt-e már az idő. Ha nem akkor minden megy tovább, ha igen akkor pl. nem hívod meg többet sem az A, sem a B függvényt.
-
válasz
Undoroid #16755 üzenetére
Szia! Könnyebb lenne, ha látnánk a módosítandó kódot! Másold be például ide, és szúrd be a linket (vagy ha rövid a kód, közvetlenül is beszúrhatod ide).
Az első kérdésre viszonylag egyszerű a válasz: a setup-ban elmented egylong
változóba a millis() függvény visszatérési értékét, ez lesz a kiinduló időpont. Aztán a loop() elején csinálsz egy összehasonlítást:if (millis()>kiindulo_idopont+max_uzemido_millisecben) return;
-
ekkold
Topikgazda
válasz
Undoroid #16677 üzenetére
Saját célra készültek. Régebben vettem nagyon baráti áron néhány STM32F101 procit. Mivel mostanában nehézkes pl. a BluePill beszerzése, ezért (is) készültek ezek a kis modulok.
Az a vicces a dologban, hogy a 101-es proci elvileg 36MHz-es, a bluepill viszont 72MHz-es, de a BulePil-en levő procikat 104MHz-ig tudtam felhúzni fagyás nélkül, amiket vettem, az mindegyik megy 128MHz-en is. Ráadásul az F101 adatlapja szerint nincs benne USB periféria, a gyakorlatban viszont mindegyiken működik... Igy ezeket a kis modulokat is simán lehet arduinoval programozni. -
Szancsó
aktív tag
válasz
Undoroid #16656 üzenetére
Analóg nincs, csak egy kb. 20 éves digitális és mivel sose tanultam így csak minimálisan boldogulok vele.
( Ezért a kapcsolási rajz is a ti mércétekkel ilyen gyerekrajz szinten lett volna. Illetve amatőrtől nem is biztos, hogy megéri ilyet kérni, mivel a rajzot ugyanúgy lehet rontani és akkor az félreviszi a dolgot. Fénykép jobb, bár ott meg egy komplikáltabb áramkör esetén ember legyen a talpán, aki kibogarássza a vezetékeket)
Viszont programozó lennék van mifene, így némileg lusta vagyok és a "debugot" a rövidebbik végén fogtam meg: mivel eléggé egyszerű az áramkör és átnézve nem tűnt fel hiba, így méregetés helyett csak kicseréltem a konvertert egy fix 5V -ot adó darabra, átkötöttem a Nano -n (VCC helyett 5V -ra) és rendbe is jött. Szóval úgy néz ki a DC-DC átalakítóval volt gond, ez megy rendesen és nem melegszik. (Összeforasztás előtt azért rámértem és így most alapon 18mA megy át a konverterből az Arduino felé.)
Köszi mindenki másnak is!( Majd még jövök erre szerintem...
)
-
-
válasz
Undoroid #16656 üzenetére
Annyit szólnék bele a dologba, hogy az Arduino Nano-n van gyárilag LDO, emiatt a VIN-nek papíron 6V-20V, gyakorlatban 7V-12V betáppal mennie kell, ha nincs extra terhelés az 5V-ján.
(Szerk.: Innentől Szancsó-nak):
De ha nagyon akarod, akkor beiktathatsz egy külsőt is, akár 5V-osat is, de akkor már ne a VIN-en táplálj. Vagy tegyél be egy 7809-et, és a 9V-ot vidd az arduino VIN-jébe. Ez utóbbi azért javallott, mert kevesebb lesz az ohmos ellenállás a stabkocka és a fogyasztó között.Ha pedig mindenképp step-down-al akarod megoldani, akkor vegyél egy nagyobbat, lehetőleg olyat, aminek tisztességes pufferkondi van a kimenetén, és csinálj vele egyből 5V-ot.
(Bár ha nem akksis felhasználás lesz, akkor mehetsz stabkockával, mert hiába fűtöd el a 60%-ot, arányaiban és abszolút értékben is minimális a nyereség a LED-ek fogyasztásával összevetve.) -
válasz
Undoroid #16616 üzenetére
Az Arduino IDE-ben keresd meg a könyvtárak kezelését, és írd be a keresőbe az eszköz nevét! Ha szerencséd van, 1db találatot kapsz rá, ami pont ez lesz.
Ha nincs szerencséd, több találatot is kaphatsz, amiből lehet mind jó, de lehet egyik sem. Ilyenkor egyesével töltsd le, próbáld ki, ha nem jó, töröld, és töltsd le a következőt.
Abban az esetben, ha egyik fenti megoldás se működik, a Google-ben keress rá arra, hogy "DS18B20.h", valószínűleg találsz egy github oldalt, onnan töltsd le az összes fájlt zip-ben:
majd csomagold ki az Arduino könyvtárban található library könyvtárba. -
válasz
Undoroid #16616 üzenetére
Ez egy ún. header fájl, amiben konstansok, függvény deklarációk, makrók vannak. Ez azért kell, hogy az objektumfájl le tudjon fordulni. Utána, hogy működő programot kapj, hozzá kell linkelni a könyvtárat is. Tehát a megoldás az, hogy fel kell telepíteni Arduino IDE-ben a könyvtárat, és akkor már fordulni fog a kód. Mármint nem te linkelsz, hanem az IDE helyetted, de a háttérben ez történik, többek között.
-
-
válasz
Undoroid #15845 üzenetére
Nagyon szívesen!
Én még egyik szenzorral se dolgoztam, de ha jól értem a dokumentációt, ezt a kódot kell csak kiegészíteni:
if(answer==i[4] && answer!=0)
{
lcd.setCursor(7,0);
lcd.print(i[2]);
lcd.setCursor(11,1);
lcd.print(i[0]);
}Ilyen formában:
if(answer==i[4] && answer!=0)
{
lcd.setCursor(7,0);
lcd.print(i[2]);
lcd.print(',');
lcd.print(i[3]);
lcd.setCursor(11,1);
lcd.print(i[0]);
lcd.print(',');
lcd.print(i[1]);
}és ahogy írtad, a " C " és a " % " jeleket el kell mozdítani a jelenlegi helyéről, hogy mennyivel, azt sajnos nem tudom megmondani, attól függ, hány tizedesjegyet ad vissza a szenzor. Egyébként printf-el meg lehetne formázni az egészet úgy, hogy a tizedesvessző mindig ugyanoda kerüljön, egymás alá, hogy jól is nézzen ki, ebben viszont nem tudok segíteni.
-
válasz
Undoroid #15827 üzenetére
rájöttem, hogy lehetséges
az, hogy összecseréltem a két lapon az RX- és a TX helyzetét
Most megnézve a Nano board lábkiosztását, igen furcsa, hogy a D0 és a D1 fel vannak cserélve. Ezt még sosem fedeztem fel.
Tényleg akár ez is lehetett az eredeti ok, amiért nem ment a kijelző.
Ami még érdekes volt, hogy az RX(D0) lábat nem tudtam itt aktiválni semmivel*, a LED-ek azt mutatták, mintha a kimeneti láb be se lenne kötve
Ezért mondtam, hogy ezt a két lábat (RX/TX) nem érdemes digitális kimenetként használni, ugyanis a boardon van egy USB-UART (serial) chip, ami az USB-n keresztüli programozást teszi lehetővé, na most ez pont erre a két lábra van kötve fixen. Az RX lábat vagy ez a chip húzza magas szintre (ehhez némileg ismerni kell a soros kommunikációs protokollt, hogy tudd, miért), vagy maga az Arduino, a hardveres serial miatt nem engedi kimenetként konfigurálni, nem tudom.
A többi anomáliára egyelőre nem találok magyarázatot*, de gyanús, hogy lehet rajta valamiféle forrasztási hiba, esetleg nézd meg nagyítóval magát az AVR chipet a boardon, hogy nincs-e megfolyva az ón két láb közt.*de találtam, [link]. Hirtelen beugrott, hogy az A6 és A7 lábakat csak analóg bemenetként lehet használni, talán ezért sincsenek kivezetve az UNO boadon.
-
válasz
Undoroid #15823 üzenetére
Ez a kis program alkalmas lesz a többi pin egyszerű tesztjéhez is?
Persze, ha a LED a Vcc-re van kötve, akkor a LOW állapotban fog világítani, ha a GND-re, akkor pedig a HIGH állapotban.
Tedd bele a többi pin-t is, és akkor csak egyszer kell flash-elni.
Ne felejts el a LED elé áramkorlátozó ellenállást tenni (~120-220Ω) -
válasz
Undoroid #15821 üzenetére
Ez az a Nano, ami zárlatosra lett forrasztva, majd kijavítva? Akkor könnyen előfordulhat, hogy 1-2 digital pin zárlatos lett és tönkrement.
Értelemszerűen ha programozni tudod, akkor a serial pin-ek, tehát a D0, D1 láb nem sérült, de a többi lábat egyesével le kéne tesztelni egy LED villogtató programmal, hogy valóban kimegy-e az információ az LCD felé! Mindkét irányban le kell tesztelni, tehát úgy is, hogy a LED a Vcc-digital pin között legyen, és úgy is, hogy a digital pin-GND között.
-
doberman
senior tag
válasz
Undoroid #15781 üzenetére
...doberman nincs elveszve... csak elhavazva.. (fürdőszoba projekt)
a rádió - mert lehet annak nevezni- igazából nem 1 nagy durranás.. közép.rövid és ultrarövid sávokon vesz(nne). az előnye a tenyérnyi méret, all mode, és az Arduino vezérlés. Tudja az ssb (egy oldalsávos) üzemmódot. de inkább érdekes játékszer mint komoly rádió vevő. általa gondoltam egy kicsit "alámerülni" az Arduino világban - csak épp rögtön beletenyereltem egy hibába... -
-
ekkold
Topikgazda
válasz
Undoroid #15762 üzenetére
Ha a szoftver (és a processzor is) ugyanaz, akkor a harver egyéb részében lehet különbség ami miatt nem megy. A nano és az uno esetében pl. a lábak számozása miatt lehet kavarodás, az LCD rákötésében. Illetve lehet, hogy a nano-nak pont valamelyik LCD-hez használt lábával van gond. Szoktam én is 2x16-os vagy hasonló alfanumerikus LCD-t használni, mert könnyen használható, egyszerű, és olcsó - egyedül a sok vezeték zavar. Ez utóbbit úgy oldottam meg, hogy egy 74HCT595 léptetőregiszter IC-vel vezérlem, így mindössze 2db I/O láb kell hozzá. Persze így saját drájvert kellett írnom hozzá, viszont az egyszerűbb és gyorsabb lett mint a gyári. Azonban történetesen uno/nano-ra nem írtam meg a szoftvert, mert olyanon nincsen, csak BluePill-en, ESP8266-on, és arduino DUE panelen használtam eddig.
Erről egy kis cikket is írtam: [link]
Új hozzászólás Aktív témák
Hirdetés
- Azonnali készpénzes nVidia RTX 2000 sorozat videokártya felvásárlás személyesen / csomagküldéssel
- Bomba ár! HP EliteBook 850 G2 - i5-5GEN I 8GB I 256GB SSD I 15,6" FULL HD I Cam I W10 I Gari!
- Bomba ár! Dell Latitude 3590 - i5-8GEN I 8GB I 256SSD I HDMI I 15,6" FHD I Cam I W11 I Garancia!
- Bomba ár! MacBook AIR 13" 2018 - i5-8210Y I 16GB I 512SSD I OS X Sonoma I Cam I Gari!
- Alkatrészt cserélnél vagy bővítenél? Nálunk van, ami kell! Enterprise alkatrészek ITT
Állásajánlatok
Cég: CAMERA-PRO Hungary Kft
Város: Budapest
Cég: PCMENTOR SZERVIZ KFT.
Város: Budapest