-
GAMEPOD.hu
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
-
nagyúr
válasz Undoroid #15672 üzenetére
Szia!
Először is, üdv a topikban!
Hátulról kezdem:
Elegendő lenne ezekhez a feladatokhoz egy NANO vagy inkább egy UNO kellene hozzá?
A két lapon ugyanaz a μC található (atmega328p), viszont a nano boardon kettővel több analóg bemenet van kialakítva, mint az UNO-n (8db vs. 6db), tehát a nano ebből a szempontból (is) jobb. Tekintve, hogy az i²c az analóg pinek közül kettőt elvesz (az A4 és A5 lábak látják el az i²c SCL és SDA funkcióját is), a nano-n 6, az UNO-n pedig 4 analóg bemenetet tudsz i²c-vel egyidejűleg használni. És ezzel válaszoltam is a másik kérdésedre. -
stopperos
senior tag
válasz Undoroid #15672 üzenetére
Akkor előröl is elkezdve.
4db érzékelő: legegyszerűbb az, ha 4 analóg bemenetet definiálsz, és a loop első sorait lemásolod újra és újra az adott termisztornak megfelelő kalibrációs paraméterekkel. A változókat pedig ennek megfelelően elnevezed: [a0, a1, ..., resistor0, resistor1, ..., tempC1, ... ].
Én ezt a részt kiraknám egy-egy függvénybe: float readTermistor1( int pin) { ..., return tempC; } formában.menü funkció: Erre létrehoznék egy "state" globális volatile változót, majd ezt egy switch/case struktúrában vizsgálva váltanék a 4 lcd kiíró kód közül. A vizsgálatra egy maradékos osztást használnék (state % 4). A state változó módosítására pedig létre kell hozni egy-egy függvényt amiben csak annyi van, hogy state++ vagy state--. Például void up() { state++; }
léptetés: Nano és Uno esetén két külső megszakításra van lehetőség. A 2-es és 3-as digitális pin-re kötött egy-egy gombbal tudod majd ezeket előhívni. A linkelt hivatkozásban van példa, csak a meghívott függvényt cseréld ki."What is Linux? I only joined because of the the penguin..." - meanwhile in the linux community. http://9gag.com/gag/arpZGOy
-
Undoroid
őstag
válasz Undoroid #15714 üzenetére
Sziasztok Guruk!
Egy érdekes dologra lettem figyelmes...avagy kifoghattam valami ügyes húzást a gyártók részéről?!
Szóval egy Arduino UNO -ra szerettem volna összedobni egy tandempanelt, amit az előre perforált furataival (szabványos méretű tüskesor használatával) illesztettem volna össze, DE ......de a furattávolságokkal akadtak gondjaim: a ki- és bemenetek összesen 4db csatlakozáson keresztül vannak kivezetve! Az egyik oldalán (analóg IN- és a tápok) megfelelő távolságban vannak egymástól, de a másik kimeneti tüskesoron (Digitál- és Pwm) csatlakozók között (7. és 8. pin) valamivel nagyobb a távolság, mint a szabványos furattávolság! Kifogtam valami rosszul sikerült UNO-t vagy a gyártók ezzel a rafinált trükkel próbálják levédeni a saját Shiel-ek gyártásának lehetőségét? Lehet gyártani sajátot, de vedd meg hozzá a legyártott alaplemezt, aminek nem lesz elegendő területe...
********************************************************************************doberman [link]
Szia! Ezer éve már...Jól néz ki az a masina! A kapcsolódó termékeknél találtam meg ezt: [link] Mit szólsz hozzá? Ne offoljuk ezzel ezt a topikot, menjünk át privát üzenetbe, ha éppen ráérsz!
https://logout.hu/bejegyzes/ngabor2/nyugodj_bekeben_bordoi.html _ https://robo-venture.com -> Az ökotudatos, digitális közösségi alkotóműhely <-
-
nagyúr
válasz Undoroid #15737 üzenetére
Szia!
Nem tudom mennyire állt szándékában a tervezőknek az utángyártott shieldek "ellehetetlenítése", de ez esetben inkább a Pokajoke áll a háttérben: az UNO elsősorban oktatásra lett kifejlesztve, ennek érdekében a komponenseket némileg "hülyeállóvá" kell tenni, vagyis, hogy ne lehessen fordítva összedugni. -
nagyúr
válasz Undoroid #15742 üzenetére
Nyitott kapukat döngetsz. Pontosan tudom, hogy ott direkt másfél raszter távolság van, ezért írtam, hogy ha nagyon akarod se tudod fordítva rádugni egyik shieldet sem.
Lehet kapni direkt UNO-hoz való shield-alaplapot, sőt, én már csináltam hozzá shieldet meggörbített pinekkel, de kár a fáradságért, ugyanis a NANO ugyanazt a μC-t tartalmazza, minden UNO példaprogram változtatás nélkül fut rajta, viszont az összes kivezetése tökéletesen próbapanel kompatibilis.Úgy érzem, a kalapáccsal elég bensőséges a kapcsolatod.
[ Szerkesztve ]
-
ekkold
Topikgazda
válasz Undoroid #15744 üzenetére
Miért nem használsz BluePill-t? Méretben, és árban is hasonló az arduino nano-hoz, de sokkal-sokkal erősebb proci van rajta.
8bit vs 32bit, 16MHz vs 72MHz.
Az STM procinál minden művelet csak 1 órajel, (szorzás és osztás is), nem tudom, hogy ezt az AVR is tudja?
[ Szerkesztve ]
-
Janos250
őstag
válasz Undoroid #15744 üzenetére
Ekkold javaslata megfontolandó! Én is használtam, amíg nem volt ESP32, csak javasolni tudom.
Azt nem mondom, hogy használj ESP32-t, mert akkor megköveznek.Az amerikaiak $ milliókért fejlesztettek golyóstollat űrbéli használatra. Az oroszok ceruzát használnak. Én meg arduinot.
-
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][ Szerkesztve ]
-
nagyúr
-
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...8lnu
-
nagyúr
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.
[ Szerkesztve ]
-
nagyúr
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Ω)[ Szerkesztve ]
-
nagyúr
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.
[ Szerkesztve ]
-
nagyúr
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.
[ Szerkesztve ]
-
nagyúr
-
weiss
addikt
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.
[ Szerkesztve ]
I did nothing, the pavement was his enemy!
-
nagyúr
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.[ Szerkesztve ]
-
őstag
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.)[ Szerkesztve ]
Mások számára a kondi fáradós, nekem farad-os...
-
őstag
válasz Undoroid #16658 üzenetére
Teljesen jogos. Jobban belegondolva az is lehet, hogy a DC-DC konverter mentette meg a Nano-t a füsttől. Mert ha nem a DC-DC a hibás, hanem a bekötés, step-down nélkül küldi át ezt az áramot azon a pici LDO-n, ami nem biztos, hogy csak ennyire melegedett volna.
Mások számára a kondi fáradós, nekem farad-os...
-
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... )
[ Szerkesztve ]
My story is one of many thousands, and the world will not suffer if it ends too soon.
-
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.[ Szerkesztve ]
-
nagyúr
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;
[ Szerkesztve ]
-
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.
-
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
//***************************************************
[ Szerkesztve ]
-
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...[ Szerkesztve ]
-
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!
https://logout.hu/bejegyzes/ngabor2/nyugodj_bekeben_bordoi.html _ https://robo-venture.com -> Az ökotudatos, digitális közösségi alkotóműhely <-
-
nagyúr
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 #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?!
[ Szerkesztve ]
https://logout.hu/bejegyzes/ngabor2/nyugodj_bekeben_bordoi.html _ https://robo-venture.com -> Az ökotudatos, digitális közösségi alkotóműhely <-
-
őstag
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
}[ Szerkesztve ]
Mások számára a kondi fáradós, nekem farad-os...
-
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.Az amerikaiak $ milliókért fejlesztettek golyóstollat űrbéli használatra. Az oroszok ceruzát használnak. Én meg arduinot.
-
nagyúr
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.
Új hozzászólás Aktív témák
- Villanyszerelés
- Kerékpárosok, bringások ide!
- Újabb Samsungok telepíthetik a Galaxy AI-t
- bb0t: Gyilkos szénhidrátok, avagy hogyan fogytam önsanyargatás nélkül 16 kg-ot
- Mindent megtudtunk az új Nokia 3210-ről
- Milyen billentyűzetet vegyek?
- Képeken az egyik kameráját elvesztő Sony Xperia 10 VI
- nVidia tulajok OFF topikja
- Vezetékes FÜLhallgatók
- Léghűtés topik
- További aktív témák...
Állásajánlatok
Cég: Ozeki Kft.
Város: Debrecen
Cég: Promenade Publishing House Kft.
Város: Budapest