Serial Control
1 & 3
Something that uses only one sensor on Arduino and makes the ellipse in p5 move on the horizontal axis, in the middle of the screen and nothing on Arduino is controlled by p5.
Taking the gravity wind example (https://editor.p5js.org/aaronsherwood/sketches/I7iQrNCul) and make it so every time the ball bounces one led lights up and then turns off, and you can control the wind from one analog sensor
2
Using a slider to control the LED brightness from p5
Arduino Code
int ledPin = 2; // connect LED to pin 9
int brightness = 0;
void setup() {
Serial.begin(9600); // start serial communication
pinMode(ledPin, OUTPUT); // set LED pin as an output
}
void loop() {
// read incoming serial data
if (Serial.available() > 0) {
brightness = Serial.read(); // read the incoming value
brightness = constrain(brightness, 0, 255); // constrain the value between 0 and 255
analogWrite(ledPin, brightness); // set the LED brightness
}
delay(10); // wait a short time before repeating the loop
}
P5.js code
let slider; // slider to control LED brightness
let serial;
function setup() {
serial = new p5.SerialPort();
serial.open("COM3");
createCanvas(400, 400); // create a canvas
slider = createSlider(0, 255, 0); // create a slider
slider.position(50, 50); // set the position of the slider
}
function draw() {
background(220); // clear the canvas
let val = slider.value(); // get the slider value
text("LED Brightness: " + val, 50, 50); // display the brightness value
// send data to Arduino over serial
if (frameCount % 10 == 0) { // limit the rate of sending data to avoid overloading the serial port
serial.write(val); // send the slider value over serial
}
}