LED fényerőszabályozó létrehozása

LED fényerejének módosítása egérmozgatással.


Utolsó felülvizsgálat: 2022.02.04 16:50


Ez a példa bemutatja, hogyan lehet adatokat küldeni egy személyi számítógépről egy Arduino kártyára a LED fényerejének szabályozására. Az adatok egyedi bájtokban kerülnek elküldésre, amelyek mindegyikének értéke 0 és 255 között van. A vázlat beolvassa ezeket a bájtokat, és ezek alapján állítja be a LED fényerejét.

Bármely szoftverről küldhet bájtokat az alaplapra, amely hozzáfér a számítógép soros portjához. Az alábbiakban példák láthatók a Processing-hez és a Max/MSP 5-ös verziójára.

Hardver szükséglet

  • Arduino kártya

  • LED

  • 200 ohm-os ellenállás

Szoftver szükséglet

Az áramkör

Csatlakoztassa a 220 ohmos áramkorlátozó ellenállást a 9-es digitális kivezetéshez, sorbakötve egy LED-del. A LED hosszú pozitív lábát (anódját) az ellenállás kimenetére, a rövidebb negatív lábát (a katódot) a testre kell kötni.

Vázlat

A kód

/*
  Dimmer

  Bemutatja, hogyan küldhet adatokat a számítógépről az Arduino kártyára,
  ebben az esetben a LED fényerejének szabályozására. Az adatok egyedi
  bájtokban kerülnek elküldésre, amelyek mindegyike 0 és 255 között van.
  Az Arduino beolvassa ezeket a bájtokat, és ezek alapján állítja be a LED fényerejét.

  Az áramkör:
  - A 9-es digitális kivezetésről a földre csatlakoztatott LED.
  - Soros kapcsolat a Processing-hez, a Max/MSP-hez vagy más soros alkalmazáshoz.

  created 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/Dimmer
*/
const int ledPin = 9;      // a kivezetés, amelyhez a LED csatlakozik

void setup() {
  // inicializálja a soros kommunikációt:
  Serial.begin(9600);

  // inicializálja a ledPin-t kimenetként:
  pinMode(ledPin, OUTPUT);
}

void loop() {
  byte brightness;

  // ellenőrizze, hogy küldtek-e adatokat a számítógépről:
  if (Serial.available()) {

    // olvassa be a legutóbbi bájtot (amely 0 és 255 között lesz):
    brightness = Serial.read();
    // állítsa be a LED fényerejét:
    analogWrite(ledPin, brightness);
  }
}

/* Processing kód a példához
  // Dimmer - bájtokat küld a soros porton keresztül
  // by David A. Mellis

  // Ez a kód nyilvános.

  import processing.serial.*;
  Serial port;
  void setup() {
    size(256, 150);
    println("Available serial ports:");
    // ha a Processing 2.1 vagy újabb verzióját használja, használja a Serial.printArray()
    println(Serial.list());
    // A lista első portját használja (0-s számút). Módosítsa ezt az Arduino kártyának
    // megfelelő port kiválasztásához. Az utolsó paraméter (pl. 9600) a kommunikáció sebessége.
    // Meg kell felelnie az Arduino-vázlatban a serial.begin()-ben átadott értéknek.
    port = new Serial(this, Serial.list()[0], 9600);
    // Ha ismeri az Arduino kártya által használt port nevét,
    // akkor közvetlenül így adhatja meg.
    //port = new Serial(this, "COM1", 9600);
  }

  void draw() {
    // rajzoljon színátmenetet feketétől fehérig
    for (int i = 0; i < 256; i++) {
      stroke(i);
      line(i, 0, i, 150);
    }
    // írja be az egér aktuális X-pozícióját a soros portra egyetlen bájtban
    port.write(mouseX);
  }
*/
/* Max/MSP v5 patch a példához
----------begin_max5_patcher----------
1008.3ocuXszaiaCD9r8uhA5rqAeHIa0aAMaAVf1S6hdoYQAsDiL6JQZHQ2M
YWr+2KeX4vjnjXKKkKhhiGQ9MeyCNz+X9rnMp63sQvuB+MLa1OlOalSjUvrC
ymEUytKuh05TKJWUWyk5nE9eSyuS6jesvHu4F4MxOuUzB6X57sPKWVzBLXiP
xZtGj6q2vafaaT0.BzJfjj.p8ZPukazsQvpfcpFs8mXR3plh8BoBxURIOWyK
rxspZ0YI.eTCEh5Vqp+wGtFXZMKe6CZc3yWZwTdCmYW.BBkdiby8v0r+ST.W
sD9SdUkn8FYspPbqvnBNFtZWiUyLmleJWo0vuKzeuj2vpJLaWA7YiE7wREui
FpDFDp1KcbAFcP5sJoVxp4NB5Jq40ougIDxJt1wo3GDZHiNocKhiIExx+owv
AdOEAksDs.RRrOoww1Arc.9RvN2J9tamwjkcqknvAE0l+8WnjHqreNet8whK
z6mukIK4d+Xknv3jstvJs8EirMMhxsZIusET25jXbX8xczIl5xPVxhPcTGFu
xNDu9rXtUCg37g9Q8Yc+EuofIYmg8QdkPCrOnXsaHwYs3rWx9PGsO+pqueG2
uNQBqWFh1X7qQG+3.VHcHrfO1nyR2TlqpTM9MDsLKNCQVz6KO.+Sfc5j1Ykj
jzkn2jwNDRP7LVb3d9LtoWBAOnvB92Le6yRmZ4UF7YpQhiFi7A5Ka8zXhKdA
4r9TRGG7V4COiSbAJKdXrWNhhF0hNUh7uBa4Mba0l7JUK+omjDMwkSn95Izr
TOwkdp7W.oPRmNRQsiKeu4j3CkfVgt.NYPEYqMGvvJ48vIlPiyzrIuZskWIS
xGJPcmPiWOfLodybH3wjPbMYwlbFIMNHPHFOtLBNaLSa9sGk1TxMzCX5KTa6
WIH2ocxSdngM0QPqFRxyPHFsprrhGc9Gy9xoBjz0NWdR2yW9DUa2F85jG2v9
FgTO4Q8qiC7fzzQNpmNpsY3BrYPVJBMJQ1uVmoItRhw9NrVGO3NMNzYZ+zS7
3WTvTOnUydG5kHMKLqAOjTe7fN2bGSxOZDkMrBrGQ9J1gONBEy0k4gVo8qHc
cxmfxVihWz6a3yqY9NazzUYkua9UnynadOtogW.JfsVGRVNEbWF8I+eHtcwJ
+wLXqZeSdWLo+FQF6731Tva0BISKTx.cLwmgJsUTTvkg1YsnXmxDge.CDR7x
D6YmX6fMznaF7kdczmJXwm.XSOOrdoHhNA7GMiZYLZZR.+4lconMaJP6JOZ8
ftCs1YWHZI3o.sIXezX5ihMSuXzZtk3ai1mXRSczoCS32hAydeyXNEu5SHyS
xqZqbd3ZLdera1iPqYxOm++v7SUSz
-----------end_max5_patcher-----------
*/

A Processing kód

A fenti kódban látható Processing vázlat bájtokat küld ki a számítógép soros portján keresztül a kártyára, hogy változtassa a LED fényerejét.

A Max kód

A fenti kódban a Max/MSP patch az alábbi képen látható. Másolja ki és illessze be egy "New patcher" ablakba.

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.