START A BIT > Projects Library > This page
Connect the first external LED, understand physical wiring in practice
Use digitalWrite to output a digital (0 or 1) signal
def on_button_pressed_a():
pins.digital_write_pin(DigitalPin.P1, 1)
input.on_button_pressed(Button.A, on_button_pressed_a)
def on_button_pressed_b():
pins.digital_write_pin(DigitalPin.P1, 0)
input.on_button_pressed(Button.B, on_button_pressed_b)
def on_forever():
pins.digital_write_pin(DigitalPin.P1, 1)
basic.pause(1000)
pins.digital_write_pin(DigitalPin.P1, 0)
basic.pause(1000)
basic.forever(on_forever)
void setup()
{
pinMode(2, OUTPUT);
}
void loop()
{
digitalWrite(2, HIGH);
delay(1000);
digitalWrite(2, LOW);
delay(1000);
}
Challenging fun task, blink in dynamic pattern, motivating the need of using Functions
Blinking the LED to follow the musical rhythms
def on_forever():
# --- STOMP 1 ---
pins.digital_write_pin(DigitalPin.P1, 1)
basic.pause(300)
pins.digital_write_pin(DigitalPin.P1, 0)
basic.pause(200)
# --- STOMP 2 ---
pins.digital_write_pin(DigitalPin.P1, 1)
basic.pause(300)
pins.digital_write_pin(DigitalPin.P1, 0)
basic.pause(200)
# --- CLAP! ---
pins.digital_write_pin(DigitalPin.P1, 1)
basic.pause(800)
pins.digital_write_pin(DigitalPin.P1, 0)
basic.pause(200)
# --- REST ---
basic.pause(1000)
basic.forever(on_forever)
def pulse(on_time: number, off_time: number):
# Turn LED on Pin 1 ON
pins.digital_write_pin(DigitalPin.P1, 1)
basic.pause(on_time)
# Turn LED on Pin 1 OFF
pins.digital_write_pin(DigitalPin.P1, 0)
basic.pause(off_time)
def on_forever():
# STOMP (1/4 beat)
pulse(300, 200)
# STOMP (1/4 beat)
pulse(300, 200)
# CLAP! (1/2 beat)
pulse(800, 200)
# REST (Silence for the remainder of the measure)
basic.pause(1000)
basic.forever(on_forever)
// Define the LED pin
const int ledPin = 2;
void setup() {
// Initialize digital pin 2 as an output
pinMode(ledPin, OUTPUT);
}
void loop() {
// STOMP (1/4 beat), total 500ms
digitalWrite(ledPin, HIGH); // LED ON
delay(300); // ON time
digitalWrite(ledPin, LOW); // LED OFF
delay(200); // OFF time
// STOMP (1/4 beat), total 500ms
digitalWrite(ledPin, HIGH); // LED ON
delay(300); // ON time
digitalWrite(ledPin, LOW); // LED OFF
delay(200); // OFF time
// CLAP! (1/2 beat), total 1000ms
digitalWrite(ledPin, HIGH); // LED ON
delay(800); // ON time
digitalWrite(ledPin, LOW); // LED OFF
delay(200); // OFF time
// REST (1/2 beat), total 1000ms
delay(1000);
}
// Define the LED pin
const int ledPin = 2;
// Function to handle the "pulse" logic
void pulse(int onTime, int offTime) {
digitalWrite(ledPin, HIGH); // Turn LED ON
delay(onTime); // Wait
digitalWrite(ledPin, LOW); // Turn LED OFF
delay(offTime); // Wait
}
void setup() {
// Initialize digital pin 2 as an output
pinMode(ledPin, OUTPUT);
}
void loop() {
// STOMP (1/4 beat), total 500ms
pulse(300, 200);
// STOMP (1/4 beat), total 500ms
pulse(300, 200);
// CLAP! (1/2 beat), total 1000ms
pulse(800, 200);
// REST (1/2 beat), total 1000ms
delay(1000);
}
Do they work? Any risk of ocassional or corner case faults? How to fix
void setup()
{
pinMode(2, OUTPUT);
}
void loop()
{
digitalWrite(2, HIGH);
delay(1000);
digitalWrite(2, LOW);
}
Enhance basic knowledge understanding, reflect and summarize what we have learnt
How many and what states does a digital signal have?
What happens if a LED is connected in opposite leads?
What pros and cons to use Function?