Димер контролиран от Processing (Dimmer)

Този пример изпраща данни от компютъра към Arduino платката и контролира яркостта на светодиод. Данните се изпращат като отделни байтове, всеки в диапазона между 0 и 255. Arduino разчита тези байтове и ги използва за да зададе яркостта на светодиода.

За този пример е необходим светодиод свързан към пин 9 с подходящ резистор (например 220 ома).

Снимка

Схема

Код за Ардуино

/* Dimer kontroliran ot Processing | KOD ZA ARDUINO
* ------------
*
* kontrolira yarkostta svetodiod chrez danni poluchavani ot kompyutera
*
* ot David A. Mellis (2006)
*
* podobrena ot Tom Igoe (April 2009)
*
* bulgarski prevod ot Simeon Ianchev / Robotev.com (Septemvri 2009)
*/

int ledPin = 9; 	   //pin za svetodioda

void setup()
{
  Serial.begin(9600);	   // zapochva seriina komunikaciya s kompyutara

  pinMode(ledPin, OUTPUT); //deklarira pina za svetodioda kato izhod
}

void loop()
{
  byte val;

  // proveryava dali ot kompyutera sa izprateni danni
  if (Serial.available()) {
    // ako uslovieto e izpalneno prochita poslednata stojnost ot kompyutera
    val = Serial.read();
    // izpolzva dannite za da zadade yarkostta na svetodioda
    analogWrite(ledPin, val);
  }
}

Код за Processing

/* Dimer kontroliran ot Processing | KOD ZA PROCESSING
* ------------
*
* kontrolira yarkostta svetodiod chrez danni poluchavani ot kompyutera
*
* ot David A. Mellis (2006)
*
* podobrena ot Tom Igoe (April 2009)
*
* bulgarski prevod ot Simeon Ianchev / Robotev.com (Septemvri 2009)
*/


// zarejda bibliotekata za serijna komunikaciya
import processing.serial.*;

Serial port;

void setup()
{
  // zadava razmer na platnoto za risuvane
  size(256, 150);

  // zadava nomera na polzvaniya serien port, smenete COM4 s nomera na porta koito polzvate
  // 9600 ukazva skorostta s koyato se obmenyat danni. Tazi stojnost tryabva da suotvetstva na 
  // stojnostta ot Serial.begin() v programata za Arduino
  port = new Serial(this, "COM4", 9600);
}

void draw()
{
  // risuva gradient ot cherno kam byalo
  for (int i = 0; i < 256; i++) {
    stroke(i);
    line(i, 0, i, 150);
  }

  // izprashta X-koordinatite na poziciyata na mishkata po seriiniya port kato bit
  port.write(mouseX);
}


Share