This example is for Wiring version 0023+. If you have a previous version, use the examples included with your software. If you see any errors or have comments, please let us know.
Driving a DC motor from a graphical user interface by BARRAGAN
Read data from the serial and turns a DC motor on or off according to the value
Read data from the serial and turns a DC motor on or off according to the value
char val; // Data received from the serial port
int motorpin = 0; // Wiring: Connect L293D Pin En1 connected to pin PWM 0
void setup() {
Serial.begin(9600); // Start serial communication at 9600 bps
}
void loop() {
if (Serial.available()) { // If data is available,
val = Serial.read(); // read it and store it in val
if (val == 'H') { // If 'H' was received,
analogWrite(motorpin, 125); // turn the motor on at medium speed
}
else if (val == 'L'){ // If 'L' was received
analogWrite(motorpin, 0); // turn the motor off
}
}
delay(100); // Wait 100 milliseconds for next reading
}
/* Processing code for this example
// Write data to the serial port according to the status of a button controlled
// by the mouse
import processing.serial.*;
Serial port; // Create serial port object
boolean rectOver = false;
int rectX, rectY; // Position of square button
int rectSize = 100; // Diameter of rect
color rectColor;
boolean buttonOn = false; // Status of the button
void setup() {
size(200, 200);
noStroke();
frameRate(10);
rectColor = color(100);
rectX = width/2 - rectSize/2;
rectY = height/2 - rectSize/2;
// List all the available serial ports in the output pane.
// You will need to choose the port that the Wiring board is
// connected to from this list. The first port in the list is
// port #0 and the third port in the list is port #2.
println(Serial.list());
// Open the port that the Wiring board is connected to (in this case #2)
// Make sure to open the port at the same speed Wiring is using (9600bps)
port = new Serial(this, Serial.list()[2], 9600);
}
void draw() {
update(mouseX, mouseY);
background(0); // Clear background to black
fill(rectColor);
rect(rectX, rectY, rectSize, rectSize);
}
void update(int x, int y) {
if (overRect(rectX, rectY, rectSize, rectSize) = true) {
rectOver = true;
}
else {
rectOver = false;
}
}
void mouseReleased() {
if(rectOver == true) {
if (buttonOn) {
rectColor = color(100);
buttonOn = false;
port.write('L'); // Send an L to indicate button is OFF
}
else {
rectColor = color(180);
buttonOn = true;
port.write('H'); // Send an H to indicate button is ON
}
}
}
boolean overRect(int x, int y, int width, int height) {
if ((mouseX >= x) && (mouseX <= x+width) &&
(mouseY >= y) && (mouseY <= y+height)) {
return true;
}
else {
return false;
}
}
*/


