Ez a példa bemutatja, hogyan küldhet több értéket az Arduino kártyáról a számítógépre.
Utolsó felülvizsgálat: 2022.02.04 16:50
Ez a példa bemutatja, hogyan küldhet több értéket az Arduino kártyáról a számítógépre. A három potenciométer leolvasott értékei a Processing vázlat vagy a Max/MSP patch háttérszínének piros, zöld és kék összetevőinek beállítására szolgálnak.
Hardver szükséglet
Arduino kártya
3 analóg érzékelő (potenciométer, fotocella, FSR stb.)
3 10 kohm-os ellenállás
összekötő vezetékek
dugdosós próbapanel (breadboard)
Szoftver szükséglet
Az áramkör
Csatlakoztassa az analóg érzékelőket a 0, 1 és 2 analóg bemeneti kivezetésekhez.
Ez az áramkör három feszültségosztó aláramkört használ az analóg feszültségek generálására az erőérzékelő ellenállásokból. A feszültségosztónak két soros ellenállása van, amelyek a feszültséget az értékükkel arányosan osztják el.

Vázlat

A kód
Az érzékelő értékeket az Arduino ASCII-kódolású decimális számként küldi el a számítógépnek. Ez azt jelenti, hogy minden szám „0” és „9” közötti ASCII-karakterekkel kerül elküldésre. A "234" értékhez például három bájt kerül elküldésre: ASCII "2" (bináris érték 50), ASCII "3" (bináris érték 51) és ASCII "4" (bináris érték 52).
/*
Ez a példa három analóg érzékelőt olvas le (a potenciométerek a
legegyszerűbbek), és sorosan küldik el az értékeket. Az alul
található Processing és Max/MSP programok ezt a három értéket veszik,
és ezek segítségével módosítják a képernyő háttérszínét.
Az áramkör:
- potentiométerek csatlakoznak a 0, 1, és 2 analóg bemenetekhez
created 2 Dec 2006
by David A. Mellis
modified 30 Aug 2011
by Tom Igoe and Scott Fitzgerald
Ez a kód nyilvános.
https://docs.arduino.cc/built-in-examples/communication/VirtualColorMixer
*/
const int redPin = A0; // érzékelő a piros szín szabályozásához
const int greenPin = A1; // érzékelő a zöld szín szabályozásához
const int bluePin = A2; // érzékelő a kék szín szabályozásához
void setup() {
Serial.begin(9600);
}
void loop() {
Serial.print(analogRead(redPin));
Serial.print(",");
Serial.print(analogRead(greenPin));
Serial.print(",");
Serial.println(analogRead(bluePin));
}
/* Processing kód a példához
// Ez a kód nyilvános.
import processing.serial.*;
float redValue = 0; // piros érték
float greenValue = 0; // zöld érték
float blueValue = 0; // kék érték
Serial myPort;
void setup() {
size(200, 200);
// Listázza az összes elérhető soros portot
// ha a Processing 2.1 vagy újabb verzióját használja, használja a Serial.printArray()
println(Serial.list());
// Tudom, hogy a Mac gépem soros listájának első portja mindig az Arduino,
// ezért a Serial.list()[0]-el nyitom meg.
// Nyissa meg azt a portot, amelyet éppen használ.
myPort = new Serial(this, Serial.list()[0], 9600);
// ne generáljon serialEvent()-et, hacsak nem kap egy újsor karaktert:
myPort.bufferUntil('\n');
}
void draw() {
// állítsa be a háttérszínt a színértékekkel:
background(redValue, greenValue, blueValue);
}
void serialEvent(Serial myPort) {
// az ASCII string fogadása:
String inString = myPort.readStringUntil('\n');
if (inString != null) {
// vágjon le minden szóközt:
inString = trim(inString);
// osszuk fel a vesszőnél a karakterláncot, és alakítsuk át a kapott
// részkarakterláncokat egész számok tömbjévé:
float[] colors = float(split(inString, ","));
// ha a tömbnek legalább három eleme van, akkor tudja, hogy az egészet
// megkapta. Írja be a számokat a színváltozókba:
if (colors.length >= 3) {
// leképezi őket a 0-255 tartományba:
redValue = map(colors[0], 0, 1023, 0, 255);
greenValue = map(colors[1], 0, 1023, 0, 255);
blueValue = map(colors[2], 0, 1023, 0, 255);
}
}
}
*/
/* Max/MSP patch a példához
----------begin_max5_patcher----------
1512.3oc4Z00aaaCE8YmeED9ktB35xOjrj1aAsXX4g8xZQeYoXfVh1gqRjdT
TsIsn+2K+PJUovVVJ1VMdCAvxThV7bO7b48dIyWtXxzkxaYkSA+J3u.Sl7kK
lLwcK6MlT2dxzB5so4zRW2lJXeRt7elNy+HM6Vs61uDDzbOYkNmo02sg4euS
4BSede8S2P0o2vEq+aEKU66PPP7b3LPHDauPvyCmAvv4v6+M7L2XXF2WfCaF
lURgVPKbCxzKUbZdySDUEbgABN.ia08R9mccGYGn66qGutNir27qWbg8iY+7
HDRx.Hjf+OPHCQgPdpQHoxhBlwB+QF4cbkthlCRk4REnfeKScs3ZwaugWBbj
.PS+.qDPAkZkgPlY5oPS4By2A5aTLFv9pounjsgpnZVF3x27pqtBrRpJnZaa
C3WxTkfUJYA.BzR.BhIy.ehquw7dSoJCsrlATLckR.nhLPNWvVwL+Vp1LHL.
SjMG.tRaG7OxT5R2c8Hx9B8.wLCxVaGI6qnpj45Ug84kL+6YIM8CqUxJyycF
7bqsBRULGvwfWyRMyovElat7NvqoejaLm4f+fkmyKuVTHy3q3ldhB.WtQY6Z
x0BSOeSpTqA+FW+Yy3SyybH3sFy8p0RVCmaMpTyX6HdDZ2JsPbfSogbBMueH
JLd6RMBdfRMzPjZvimuWIK2XgFA.ZmtfKoh0Sm88qc6OF4bDQ3P6kEtF6xej
.OkjD4H5OllyS+.3FlhY0so4xRlWqyrXErQpt+2rsnXgQNZHZgmMVzEofW7T
S4zORQtgIdDbRHrObRzSMNofUVZVcbKbhQZrSOo934TqRHIN2ncr7BF8TKR1
tHDqL.PejLRRPKMR.pKFAkbtDa+UOvsYsIFH0DYsTCjqZ66T1CmGeDILLpSm
myk0SdkOKh5LUr4GbWwRYdW7fm.BvDmzHnSdH3biGpSbxxDNJoGDAD1ChH7L
I0DaloOTBLvkO7zPs5HJnKNoGAXbol5eytUhfyiSfnjE1uAq+Fp0a+wygGwR
q3ZI8.psJpkpJnyPzwmXBj7Sh.+bNvVZxlcKAm0OYHIxcIjzEKdRChgO5UMf
LkMPNN0MfiS7Ev6TYQct.F5IWcCZ4504rGsiVswGWWSYyma01QcZgmL+f+sf
oU18Hn6o6dXkMkFF14TL9rIAWE+6wvGV.p.TPqz3HK5L+VxYxl4UmBKEjr.B
6zinuKI3C+D2Y7azIM6N7QL6t+jQyZxymK1ToAKqVsxjlGyjz2c1kTK3180h
kJEYkacWpv6lyp2VJTjWK47wHA6fyBOWxH9pUf6jUtZkLpNKW.9EeUBH3ymY
XSQlaqGrkQMGzp20adYSmIOGjIABo1xZyAWJtCX9tg6+HMuhMCPyx76ao+Us
UxmzUE79H8d2ZB1m1ztbnOa1mGeAq0awyK8a9UqBUc6pZolpzurTK232e5gp
aInVw8QIIcpaiNSJfY4Z+92Cs+Mc+mgg2cEsvGlLY6V+1kMuioxnB5VM+fsY
9vSu4WI1PMBGXye6KXvNuzmZTh7U9h5j6vvASdngPdgOFxycNL6ia1axUMmT
JIzebXcQCn3SKMf+4QCMmOZung+6xBCPLfwO8ngcEI52YJ1y7mx3CN9xKUYU
bg7Y1yXjlKW6SrZnguQdsSfOSSDItqv2jwJFjavc1vO7OigyBr2+gDYorRk1
HXZpVFfu2FxXkZtfp4RQqNkX5y2sya3YYL2iavWAOaizH+pw.Ibg8f1I9h3Z
2B79sNeOHvBOtfEalWsvyu0KMf015.AaROvZ7vv5AhnndfHLbTgjcCK1KlHv
gOk5B26OqrXjcJ005.QqCHn8fVTxnxfj93SfQiJlv8YV0VT9fVUwOOhSV3uD
eeqCUClbBPa.j3vWDoMZssNTzRNEnE6gYPXazZaMF921syaLWyAeBXvCESA8
ASi6Zyw8.RQi65J8ZsNx3ho93OhGWENtWpowepae4YhCFeLErOLENtXJrOSc
iadi39rf4hwc8xdhHz3gn3dBI7iDRlFe8huAfIZhq
-----------end_max5_patcher-----------
*/
A Processing kód
Másolja ki a Processing vázlatot a fenti kódmintából. Ahogy módosítja az analóg érzékelők értékét, a háttér színe megváltozik:

A Max kód
A max patch így néz ki. A patch szövege a fenti kódban található. Másolja ki és illessze be egy "New patcher" ablakba a vázlat megtekintéséhez.

Tudj meg többet
További alapvető oktatóanyagokat a beépített példák részben talál.
Felfedezheti a nyelvi referenciát is, az Arduino programozási nyelv részletes gyűjteményét.