Hirdetés

2024. április 26., péntek

Gyorskeresés

Téma összefoglaló

Téma összefoglaló

  • Utoljára frissítve: 2023-03-11 00:46:52

LOGOUT.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.

Összefoglaló kinyitása ▼

Hozzászólások

(#4901) DrojDtroll válasza tvamos (#4900) üzenetére


DrojDtroll
addikt

Nekem nem százas valami.

Nem tudom folyamatosan olvasni a bejövő adatokat.

(#4902) Janos250 válasza Pikachu24 (#4897) üzenetére


Janos250
őstag

Ahova a Microsoft beteszi a lábát....
Hagy a fenébe a Microsoftot, töltsd le innen:
https://www.arduino.cc/en/Main/Software

[ Szerkesztve ]

Az amerikaiak $ milliókért fejlesztettek golyóstollat űrbéli használatra. Az oroszok ceruzát használnak. Én meg arduinot.

(#4903) Janos250 válasza DrojDtroll (#4898) üzenetére


Janos250
őstag

Biznisz az biznisz! A MS már ebbe is bele akar kavarni :((
https://www.microsoft.com/en-us/store/p/arduino-ide/9nblggh4rsd8

[ Szerkesztve ]

Az amerikaiak $ milliókért fejlesztettek golyóstollat űrbéli használatra. Az oroszok ceruzát használnak. Én meg arduinot.

(#4904) DrojDtroll válasza Janos250 (#4903) üzenetére


DrojDtroll
addikt

#csakalinux :C

(#4905) gyapo11 válasza Pikachu24 (#4897) üzenetére


gyapo11
őstag

Nálam most 4 verzió van, 1.6.5, 1.6.7, 1.6.13 és 1.8.0, szerintem mindegyik működik. Ha kéred valamelyiket, akkor összecsomagolom egy zipbe és fölteszem a sendspace.com-ra.

menyország -> mennyország, akadáj -> akadály, jótálás -> jótállás, Iphoneal > Iphone-nal, kisuly > kisujj, csővet > csövet

(#4906) DrojDtroll válasza gyapo11 (#4905) üzenetére


DrojDtroll
addikt

miért nem csak a legújabb?

(#4907) Gergosz2 válasza DrojDtroll (#4906) üzenetére


Gergosz2
veterán

nálam az 1.6.5 van fent. Az ettől újabb verziók össze-vissza pakolgatják a library-ket, és ezért nem fordulnak le a régebbi projektjeim.

(#4903) Janos250

Nem értem miért vagy felháborodva? :U Arduino feltöltötte és tök ingyenes is. M$-nek csak annyi köze van hozzá, hogy ők üzeneltetik a store-t és kész.

Nokia 6030 Hardcore User // I Panic Restaurant by Taito

(#4908) Janos250 válasza Gergosz2 (#4907) üzenetére


Janos250
őstag

Mert nagyon rossz tapasztalataim vannak MS ügyben! :((
Én mindenesetre az eredeti oldalról töltöm le. :)

Az amerikaiak $ milliókért fejlesztettek golyóstollat űrbéli használatra. Az oroszok ceruzát használnak. Én meg arduinot.

(#4909) gyapo11 válasza DrojDtroll (#4906) üzenetére


gyapo11
őstag

Csak a biztonság kedvéért, ha valami gubanc van, akkor legyen mivel próbálgatni. Aztán ha az újabb biztonsággal működik, akkor majd törlöm a régebbieket.

menyország -> mennyország, akadáj -> akadály, jótálás -> jótállás, Iphoneal > Iphone-nal, kisuly > kisujj, csővet > csövet

(#4910) DrojDtroll


DrojDtroll
addikt

Számítógépet akarok összekötni arduinoval ethernet shield segítségével.

Próbálkozott már valaki ilyennel?

(#4911) Teasüti válasza tvamos (#4889) üzenetére


Teasüti
nagyúr

Rémlik még a lépcső világítás, amit készítettem korábban? Az LCD menü? :)
Csak a menü megeszi a Nano rom-jának egy tekintélyes hányadát. Optimalizáció nélkül bele se fértem a rom-ba első nekifutásra.
A smart ledes motorkerékpár projektem ennél összetettebb lesz.

Nem kapok email-t azon az openstm32 oldalon, így nem tudom letölteni a progit. :(

(#4912) Teasüti válasza tvamos (#4889) üzenetére


Teasüti
nagyúr

dupla...

[ Szerkesztve ]

(#4913) industrial válasza Gergosz2 (#4856) üzenetére


industrial
tag

Kiprobáltam, de nem működik. Nem tudok csatlakozni a bluetooth-hoz. Folyamatosan azt a hibát dobálja hogy nem lehet kommunikálni az eszközzel. Mi lehet a baj? Ez a bluetooth modul

(#4914) tvamos válasza Teasüti (#4911) üzenetére


tvamos
nagyúr

Nem szurte ki a spam filtered?

"Mindig a rossz győz, és a jó elnyeri méltó büntetését." Voga János

(#4915) Teasüti válasza tvamos (#4914) üzenetére


Teasüti
nagyúr

De. :W
Kösz a tippet!

(#4916) Janos250 válasza icemad (#4858) üzenetére


Janos250
őstag

Ez egy tűrhető összefoglaló:

http://vctec.co.kr/web/product/BAE/img/Arduinodocumentation.pdf

Az amerikaiak $ milliókért fejlesztettek golyóstollat űrbéli használatra. Az oroszok ceruzát használnak. Én meg arduinot.

(#4917) Janos250 válasza fpeter84 (#4492) üzenetére


Janos250
őstag

Ha használtad a MAX7219-et, segíts légyszíves!
Eddig csak egyedül használtam a modult, semmi gond nem volt vele. Mint az gyakori, a meghajtó részt magam írtam meg.
Most viszont kettőt kapcsolnék össze kaszkadban, de nem sikerül: a manual azt írja, hogy ha a 16 bit besiftelése után nem visszük fel a chipselectet, akkor kisiftelődik az új bevitellel párhuzamosan a régi. Ha jól értelmezem. Viszont hiába viszem fel a CS-t a 16 bit után, a következő 16 bit besiftelésekor az előzőt akkor is tovább küldi a másodiknak is, tehát a kettő ugyanazt csinálja. Mit értelmezek rosszul?

Az amerikaiak $ milliókért fejlesztettek golyóstollat űrbéli használatra. Az oroszok ceruzát használnak. Én meg arduinot.

(#4918) fpeter84 válasza Janos250 (#4917) üzenetére


fpeter84
senior tag

Mono 8x8-as mátrixot MAX7219-el még nem használtam, csak 8x8-as RGB mátrixot DM163-al, de a sorba fűzést azon sem próbáltam még ki... Lehet normális ez a viselkedés, a második/harmadik/n-dik csippet úgyis a chip select-el kell megszólítani akkor, amikor a rá vonatkozó információt küldöd éppen, szóval úgy mindenki csak arra és akkor reagál amikor kell neki

(#4919) Janos250 válasza fpeter84 (#4918) üzenetére


Janos250
őstag

Köszi. A külön CS megoldást akartam megkerülni, mivel - elméletileg - kellene menni. De valamiért nem megy, és ez bosszant, hogy le van írva, de nem megy. Viszont a netet böngészve látom, hogy másnak is vannak vele mindenféle bajai: pull up, pull down, de nem ekkora hanem amakkora, de amahhoz a panelhoz meg mégamakkora. Szóval úgy látszik macerás, marad a külön vezérlés. Az az érdekes, hogy az adatokat jól továbbküldi, csak a CS-t nem.

Az amerikaiak $ milliókért fejlesztettek golyóstollat űrbéli használatra. Az oroszok ceruzát használnak. Én meg arduinot.

(#4920) fpeter84 válasza Janos250 (#4919) üzenetére


fpeter84
senior tag

Előfordulhat hogy nem eredeti Maxim IC hanem kínai klón nem tökéletes implementációban :U

(#4921) Janos250 válasza fpeter84 (#4920) üzenetére


Janos250
őstag

Az biz' meglehet :(( Mert elvileg kellene mennie, pl. ezt írják, ami elég egyértelmű:
"For example, if four MAX7219s are cascaded, then to write to the
fourth chip, sent the desired 16-bit word, followed by three no-op codes (hex 0xXX0X, see Table 2). When
LOAD/CS goes high, data is latched in all devices. The first three chips receive no-op commands, and the
fourth receives the intended data."

Az amerikaiak $ milliókért fejlesztettek golyóstollat űrbéli használatra. Az oroszok ceruzát használnak. Én meg arduinot.

(#4922) DrojDtroll


DrojDtroll
addikt

Ez milyen protokoll lehet?

(#4923) tvamos válasza DrojDtroll (#4922) üzenetére


tvamos
nagyúr

Szép szkóp!

"Mindig a rossz győz, és a jó elnyeri méltó büntetését." Voga János

(#4924) DrojDtroll válasza tvamos (#4923) üzenetére


DrojDtroll
addikt

nem az enyém :P

(#4925) icemad válasza Janos250 (#4916) üzenetére


icemad
nagyúr
LOGOUT blog

Köszönöm szépen. Egy csomó minden van benne, ami érdekel. Nagyon hasznos olvasnivaló.

(#4926) razorbenke92 válasza Janos250 (#4921) üzenetére

Ez pont nem azt magyarázza, hogy rosszul megy.

"a manual azt írja, hogy ha a 16 bit besiftelése után nem visszük fel a chipselectet, akkor kisiftelődik az új bevitellel párhuzamosan a régi. Ha jól értelmezem. Viszont hiába viszem fel a CS-t a 16 bit után, a következő 16 bit besiftelésekor az előzőt akkor is tovább küldi a másodiknak is, tehát a kettő ugyanazt csinálja. Mit értelmezek rosszul?"

Azt értelmezed rosszul, hogy a CS megállítja az IC shiftregiszterét. A CS csupán egy load jel, a lényege, hogy a shift regiszterben lévő logikai tartalmat átkapcsolja a kimenetekre. Az adattartalmat hordozó shiftregiszter viszont nem áll meg.

Ha jól sejtem, te azt szeretted volna, hogy a lánc első (tehát aminek a DataIN-je a mikrokontrollerről megy) tagját feltöltöd adattal, aktiválod a CS-el, majd folytatod a másodikkal. Csak ezzel az lesz a baj, hogy így kishifteled az adatot az elsőről, így miután újra aktiválod a közös CS-t az első elállítódik.

Amit kéne helyette:

A teljes láncot feltöltöd, N*16 bittel, ahol N az elemek száma. Az első 16 bit a legtávolabbi IC adata lesz, az utolsó 16 bit pedig a mikrokontrollerre kötött IC-n fog megjelenni. Amikor kiküldted az N*16 bitet, mehet a közös CS

Ha pedig valamelyiket nem akarod aktiválni, akkor az adott IC 16 bitjében no-op kódnak kell lennie.

A lényeg tehát, hogy közös CS lábbal nem tudod egyenként frissíteni a kimeneteket, csak úgy, ha betolod mint az N db IC-re a 16 bites kódot, a fent leírt sorrendben.

[ Szerkesztve ]

Mások számára a kondi fáradós, nekem farad-os...

(#4927) Janos250 válasza razorbenke92 (#4926) üzenetére


Janos250
őstag

Igen, sajnos úgy tűnik, így van. Nem is az volt nekem a gondom, hogy megáll-e a shift regiszter, hanem én a magam paraszti logikájával úgy képzeltem, hogy nullázódik, tehát a következő bevitelnél nulláról indul, nem marad ott az előző ciklus "szemete". Úgy tűnik nem így van. Az rendben van, hogy nullákkal feltöltöm, így is csináltam, amikor a másodikra írtam. Azt képzeltem, hogy amikor az elsőre írok, nem kell teljes láncot kiírni, de kell. Például ha van n darab, hiába csak az elsőre akarok írni, minden egyes alkalommal a teljes láncot kell írni. Ez - szerintem - elég töketlen megoldás, mert ha például az elsőt írom, akkor utána még egy halom nullát kell kiírni, hogy kitakarítsam a shift regisztert. Vagyis a shift regiszterből akár el is hagyhatnám az f betűt. Mindegy, ez van, ezt kell szeretni. Mivel mostmár biztosan tudom, hogy ez van, nem keresem a más megoldást. Vagy blokkonként külön CS, és ez is megoldás, de azt hittem, lehet egyszerűbben. Mindenesetre kösz mindenkinek.

Az amerikaiak $ milliókért fejlesztettek golyóstollat űrbéli használatra. Az oroszok ceruzát használnak. Én meg arduinot.

(#4928) razorbenke92 válasza Janos250 (#4927) üzenetére

Amit még lehet, hogy csinálsz egy külön Shiftreget egy külön CS-el, ami a többi Shiftreg CS-ét vezérli.

Nyilván kellően nagy N mellett éri meg, és időkritikus is, de megoldható.

Mások számára a kondi fáradós, nekem farad-os...

(#4929) Janos250 válasza razorbenke92 (#4928) üzenetére


Janos250
őstag

Kösz! Ötletes, de annyira nem éles a kérdés. :) Terv szerint összesen 2*8 karakter lesz. Ezt akár külön-külön CS-el meg lehet csinálni az ESP8266-on is.

Az amerikaiak $ milliókért fejlesztettek golyóstollat űrbéli használatra. Az oroszok ceruzát használnak. Én meg arduinot.

(#4930) gyapo11 válasza razorbenke92 (#4928) üzenetére


gyapo11
őstag

Bcd dekóderrel is jó pár ic-ig, 2 bit 4 ic, 3 bit 8 ic, utána már jobb a plusz shiftregiszter.

menyország -> mennyország, akadáj -> akadály, jótálás -> jótállás, Iphoneal > Iphone-nal, kisuly > kisujj, csővet > csövet

(#4931) stinky14


stinky14
csendes tag

Elektromos kaput építek, és a vezérlés arduino lenne. Régebben láttam egy olyan videot, amin lefogták a motor kihajtást, és leállt a motor. Ilyen módon oldanám meg a végállás érzékelést. 12V-os motorokat használnék. Hiába keresgéltem, nem találtam meg, mire lenne szükségem ahhoz, hogy ez működjön is. Szerintetek?

(#4932) DrojDtroll válasza stinky14 (#4931) üzenetére


DrojDtroll
addikt

Aremerosseg mero arduinohoz?

(#4933) Janos250 válasza stinky14 (#4931) üzenetére


Janos250
őstag

Mindenképp áramerősséget mérj, mert akkor más akadály esetén (pl. beszorul a kutya) is megáll.

Az amerikaiak $ milliókért fejlesztettek golyóstollat űrbéli használatra. Az oroszok ceruzát használnak. Én meg arduinot.

(#4934) Janos250 válasza stinky14 (#4931) üzenetére


Janos250
őstag

Talán ez segítség:
http://www.communica.co.za/Content/Catalog/Documents/D4127258294.pdf

Az amerikaiak $ milliókért fejlesztettek golyóstollat űrbéli használatra. Az oroszok ceruzát használnak. Én meg arduinot.

(#4935) Ghandi


Ghandi
aktív tag

Sziasztok!
Egy nagyon kezdő arduinos vagyok,pár napja van csak egy arduino nano kompatibilis kínai kis csodám.
Most ismerkedek vele,de nekem ez még nem igazán megy.
Annyit akarnék tenni hogy egy ajtón van egy read relé. Ha az ajtó kinyílik akkor egy piezzón dallamot játszik le és egy led villog egy percig.
Külön-külön mennek a dolgok,azaz a ledet tudom villogtatni ha a read relénél megszakad az átfolyás, és külön dallamot is ad a piezzora, de ezt a két dolgot nem tudom hogy lehetne összefűzni.
A dallamot az arduino oldaláról letöltött ToneAC segítségével fabrikáltam,de a gyári demo dallam is elegendő lenne próbára.
Egy hozzá értőnek biztos pár perc lenne megírni a teljes kődot,de nekem nem megy.
Tudna segíteni valaki?
A bekötés a következő :
A piezzo ToneAC-nél a 9 és 10-es lábak
A LED a 8-as láb + GND
A read relé meg 12-es láb + GND
Megszánna valaki?
Előre is köszönöm!

Elmélet és gyakorlat közt nincs különbség elméletben

(#4936) gyapo11 válasza Ghandi (#4935) üzenetére


gyapo11
őstag

Úgy kell megírni mindkét függvényt, hogy ne millissel várakoztass.
A led villogtatást itt megnézheted: link
A hang egy kicsit érdekesebb, mert van a frekvencia szerinti ki-bekapcsolás üteme, van a hang ideje, és van a szünet ideje, háromféle késleltetés, de az elv ugyanaz, mint a led villogtatásánál.
Próbálkozhatsz libraryvel is, amit már valaki megírt, ha szerencséd van nem akad össze a hanggal, pl. timer.

menyország -> mennyország, akadáj -> akadály, jótálás -> jótállás, Iphoneal > Iphone-nal, kisuly > kisujj, csővet > csövet

(#4937) Janos250 válasza gyapo11 (#4936) üzenetére


Janos250
őstag

Ezt kezdő szerintem félreérti:"ne millissel várakoztass"
Így értelmezendő: Ne delay-el, hanem millissel várakoztass.

Az amerikaiak $ milliókért fejlesztettek golyóstollat űrbéli használatra. Az oroszok ceruzát használnak. Én meg arduinot.

(#4938) fpeter84


fpeter84
senior tag

Meghozta a ződmikulás a BME280 párost. Első nekifutásra sokkal szorosabban mozognak együtt a páratartalom értékek - ráfújva, legyezve, kéközlítve stb ugyan van hogy látványos egy pillanatra a különbség, de ha kapnak 5-10-30mp-et a kiegyenlítődésre akkor szépen beállnak fél-1 %-on belüli értékre

Nem tudom hogy a HTU21-nél miért volt akkora szórás - lehet hamisítják a kínaiak, lehet a forrasztásnál vagy szállításnál sérült meg, passz - konkrétabb következtetést akkor lehetne levonni ha 10-20 darabot üzemeltetne egymás mellett az ember belőlük...

(#4939) Aryes


Aryes
nagyúr

Sziasztok! Van egy szervóm, amit elsőre véletlenül rosszul kötöttem be, felcseréltem két vezetéket, a vezérlést és a gnd-t (a vcc a helyére került). A kérdés, hogy elromolhatott-e emiatt? Mozogni ugyanis mozog, miután rendesen bekötöttem, lehet vezérelni is, és azt csinálja, amit kell, kivéve, hogy álló helyében folyamatosan morog. Ha kézzel arrébb forgatom, van, hogy abbahagyja. Vagy 10 éve rendeltem egy meg nem valósult projekt kapcsán, és sosem próbáltam ezelőtt, hogy jól működik-e, ezért kérdezem, hogy lehet, hogy eleve silány minőség volt, esetleg megromlott a szekrényben (elég nedves a ház), vagy ennyitől elromlott (kb. 10-20mp-ig hagytam rajta fordítva, mire rájöttem). Esetleg hosszú a kábel (kb. 25cm, árnyékolás nélkül) és összeszed vmi zajt?
Ehhez kapcsolódik a másik kérdésem: a digitális szervók vezérlése különbözik az analógoktól, vagy pont ugyanúgy kell azokat is vezérelni?
Üdv

(#4940) gyapo11 válasza Janos250 (#4937) üzenetére


gyapo11
őstag

Ezt kezdő szerintem félreérti:"ne millissel várakoztass"
Így értelmezendő: Ne delay-el, hanem millissel várakoztass.

Igen, bocsi, így akartam írni.

menyország -> mennyország, akadáj -> akadály, jótálás -> jótállás, Iphoneal > Iphone-nal, kisuly > kisujj, csővet > csövet

(#4941) razorbenke92 válasza Aryes (#4939) üzenetére

A morcogás az gyakori. Mechanikai nemlinearitások miatt nem képes oda beállni, ahova szeretne, de a szabályzójában nincs integrátor, így azzal a pici erősítéssel próbálja megoldani.

Ha pici a táp árama, akkor növeld, ha elég nagy áramot tud a táp, akkor próbálj neki nagyobb feszültséget adni. 5,5V simán jó, de az RC-s alkalmazásokban a jobb beállási idők miatt a 6V-ot is rájukteszik.

Mások számára a kondi fáradós, nekem farad-os...

(#4942) Ghandi válasza gyapo11 (#4936) üzenetére


Ghandi
aktív tag

Lehet hogy rosszul iurtam le. Szóval a led villogtatás read relé segítségével megy, és a dallam lejátszása is megy, csak ez együtt nem megy, azaz nem tudom hogy kell.
Nekem egy olyan kód kellene hogy ha a read relé megszakad akkor kezdjen el a led villogni és a zene is csak akkor induljon el.
Most ott tartok hogy ha áramot kap a nano akkor rögtön lejátsza a dallamot magától, nem vezérli a read relé csak a led villogást.
Na ezt hogy kell pontosan?

Elmélet és gyakorlat közt nincs különbség elméletben

(#4943) Ghandi válasza Ghandi (#4942) üzenetére


Ghandi
aktív tag

Konkrétan ezekről lenne szó :
A LED vezérlése :
void setup()
{
pinMode(8, OUTPUT);
pinMode(12, INPUT_PULLUP);
}

void loop()
{
int sensorVal = digitalRead(12);

if (sensorVal == LOW) {
digitalWrite(8, LOW);
}
else {
digitalWrite(8, HIGH);
}
}

A zene pedig a letöltött ToneAC Library használatával megy.
Az abban lévő demo dallam is megfelelne próbának.
// ---------------------------------------------------------------------------
// Connect your piezo buzzer (without internal oscillator) or speaker to these pins:
// Pins 9 & 10 - ATmega328, ATmega128, ATmega640, ATmega8, Uno, Leonardo, etc.
// Pins 11 & 12 - ATmega2560/2561, ATmega1280/1281, Mega
// Pins 12 & 13 - ATmega1284P, ATmega644
// Pins 14 & 15 - Teensy 2.0
// Pins 25 & 26 - Teensy++ 2.0
// Be sure to include an inline 100 ohm resistor on one pin as you normally do when connecting a piezo or speaker.
// ---------------------------------------------------------------------------

#include <toneAC.h>

// Melody liberated from the toneMelody Arduino example sketch by Tom Igoe.
int melody[] = { 262, 196, 196, 220, 196, 0, 247, 262 };
int noteDurations[] = { 4, 8, 8, 4, 4, 4, 4, 4 };

void setup() {} // Nothing to setup, just start playing!

void loop() {
for (unsigned long freq = 125; freq <= 15000; freq += 10) {
toneAC(freq); // Play the frequency (125 Hz to 15 kHz sweep in 10 Hz steps).
delay(1); // Wait 1 ms so you can hear it.
}
toneAC(); // Turn off toneAC, can also use noToneAC().

delay(1000); // Wait a second.

for (int thisNote = 0; thisNote < 8; thisNote++) {
int noteDuration = 1000/noteDurations[thisNote];
toneAC(melody[thisNote], 10, noteDuration, true); // Play thisNote at full volume for noteDuration in the background.
delay(noteDuration * 4 / 3); // Wait while the tone plays in the background, plus another 33% delay between notes.
}

while(1); // Stop (so it doesn't repeat forever driving you crazy--you're welcome).
}

Na ezt a kettő kódot hogyan lehetne egybe gyúrni?
A dallamot majd megváltoztatom,és a ledet is megcsinálom hogy egy percig villogjon esetleg két ledet villogtatnék ellentétes ütemben, de azt nem tudom hogy ezt a két dolgot hogyan tudnám egyberakni.

Elmélet és gyakorlat közt nincs különbség elméletben

(#4944) Janos250 válasza Ghandi (#4943) üzenetére


Janos250
őstag

Én ezt próbálnám:
a "digitalWrite(8, LOW)" (vagy a digitalWrite(8, HIGH)) után betenném a második loopban lévő egész pakkot a "while(1);" kivételével.
Az include és a deklaráció persze menne az elejére.
Felelősség nélkül ;)

[ Szerkesztve ]

Az amerikaiak $ milliókért fejlesztettek golyóstollat űrbéli használatra. Az oroszok ceruzát használnak. Én meg arduinot.

(#4945) Ghandi válasza Janos250 (#4944) üzenetére


Ghandi
aktív tag

Először én is így próbáltam meg,de nem működik.
Ahogy áramot kap az arduino akkor magától lejátsza a hangot és utána csak a led villogás marad meg,a hang nem jön elő sehogy.
A while(1) nélkül talán egyfolytában megy a dallam? Már nem emlékszem,de a read relére a hang nem reagál

Elmélet és gyakorlat közt nincs különbség elméletben

(#4946) gyapo11 válasza Ghandi (#4943) üzenetére


gyapo11
őstag

A led villogtató részben nem látok késleltetést, ettől olyan gyorsan kellene villognia, hogy egy folyamatos 50 %-os fényt kellene látni.

De még ennél is nagyobb baj, hogy a loopban a második for ciklusban ez van:
delay(noteDuration * 4 / 3);

Vagyis a toneAC csak játssza a hangot a háttérben, az időzítés meg delay-jel történik. :(
Ráadásul a for ciklusból ki se lép, amíg a zene tart, és így a ledet se tudja villogtatni.
A led villogtatást is és a zene lejátszását is delay nélkül kell megoldani.

Azt kell megérteni, hogy ha egy dolognál több történik, akkor biztosítani kell a loop folyamatos pörgését, hogy mindegyik programrészlet futni tudjon. A delay megállítja a loop futását a megadott időre, és addig a többi programrészlet nem fut, nem tudja végezni a feladatát.
Vagy a while(1) örökre ott fog állni. Ez jó akkor, ha csak 1 feladatot egyszer akarunk lefuttatni, mint a példában a zenét, és utána resetig nem történik más, csak a while fut le újra és újra.

A program elején kell a feltétel, hogy kell-e akciózni, meg hogy fut-e az 1 perces időzítés. Ha beérkezett a jel, akkor elindítani egy számlálót az 1 perchez, ha jól emlékszem ennyi ideig akarod villogtatni a ledet és játszani a zenét.
Ezután elindítani a led villogtatást és a zene lejátszását.
Amikor letelik az 1 perc, akkor leállítani a villogtatást és a zenét, és várni a következő eseményre.
Amikor az 1 perc mérő aktív, akkor nem figyel semmit, csak villogtat és zenél.

A led villogtatására küldtem linket.
A zenénél is a delayt le kell cserélni a ledvillogtatóban látható módon. Tehát elteszed a pillanatnyi millist egy változóba, és minden loop lefutáskor ezt az értéket hasonlítod a pillanatnyi millishez. Amikor pl. 1000-rel több, akkor eltelt 1 másodperc.

Amikor elkezd egy hangot játszani, utána rögtön a delay van a kódban, ezt kell lecserélni a millises megoldásra, és kell egy jelzőváltozó, ami biztosítja, hogy ne fusson rá újra a
toneAC(melody[thisNote], 10, noteDuration, true);
sorra amíg az időzítés véget nem ér, különben minden loop lefutáskor újra és újra elkezdi játszani ugyanazt a hangot a végtelenségig.
For ciklus helyett egyszerűen növelni kell a thisNote változó értékét, tehát a ciklus helyett a programnak kell léptetnie amikor az előző hang lejátszása véget ért.

menyország -> mennyország, akadáj -> akadály, jótálás -> jótállás, Iphoneal > Iphone-nal, kisuly > kisujj, csővet > csövet

(#4947) Aryes válasza Ghandi (#4945) üzenetére


Aryes
nagyúr

Reed relé, nem read...

A digitális szervóról tud vki mondani valamit? Ugyanúgy kell programozni?

(#4948) Cancer


Cancer
senior tag

Sziasztok,

A napokban megérkezett az e-bay-ről az Arduino starter kitem. :D Már nagyon várom, hogy leüljek megtanulni programozni (építeni). Közel nulláról indítom a témát, de szerintem aktív topictag leszek. :)

Viszont furcsállom, hogy a kapott UNO board kicsit másképp néz ki. A felirat szerint Atmega328P-AU MCU chippel van szerelve a board s van rajta egy Atmega16U2 USB chip valamint 3,3/5V-os kapcsoló.

Bár most utána kerestem, de úgy látom, hogy csak a tokozás lesz más. :)

Az ügyvédem nélkül nem írok alá semmit...

(#4949) fpeter84 válasza Cancer (#4948) üzenetére


fpeter84
senior tag

A kínai klónokon többnyire nem 16U2 felel az USB>soros illesztésért hanem egy CH340g csipp - de ez mostanra ugyanolyan jó mint az eredeti, nincsen probléma se a win, se a linux alatti stabilitásával - max pár perverzebb egyedi projektről csúszik le az ember, ahol ezt a kiegészítő csippet hekkelik meg ilyen olyan célból. Bár igazából elesni attól sem fogsz, csak arra meg egy Leonardo-t vagy Pro Micro-t kell venni 32U4-el...

(#4950) Cancer válasza fpeter84 (#4949) üzenetére


Cancer
senior tag

Akkor jó, mert ezek szerint mégsem kínai a klón. Vagy nem is klón. :D

Minden más amit írtál, ellenben még egyelőre kínai. :DD De remélem már csak rövid ideig lesz az.

Az ügyvédem nélkül nem írok alá semmit...

Copyright © 2000-2024 PROHARDVER Informatikai Kft.