
Ejercicios Arduino y Tinkercad tanda 4
Detector de fatiga del conductor (sensor de flexión)
- Flex Sensor
Actuador:
- Servo + buzzer + LED
Idea:
El sensor va en un dedo o en una muñeca simulada. Si detecta que la mano permanece doblada demasiado tiempo, interpreta que el conductor puede estar dormido y activa una alarma.
ODS: 3 (Salud y bienestar)

// C++ code
//
#define sensorPin A0 // Flex Sensor is connected to this pin
float VCC = 5; // Arduino is powered with 5V VCC
float R2 = 10000; // 10K resistor is
float sensorMinResistance = 30000; // Value of the Sensor when its flat
float sensorMaxResistance = 163000; // Value of the Sensor when its bent at 90*
void setup()
{
pinMode(A0, INPUT);
Serial.begin(9600);
pinMode(9, OUTPUT);
pinMode(10, OUTPUT);
pinMode(11, OUTPUT);
pinMode(12, OUTPUT);
pinMode(13, OUTPUT);
}
void loop()
{
int ADCRaw = analogRead(sensorPin);
float ADCVoltage = (ADCRaw * VCC) / 1023; // get the voltage e.g (512 * 5) / 1023 = 2.5V
float Resistance = R2 * (VCC / ADCVoltage - 1); // Calculate Resistance Value
uint8_t ReadValue = map(Resistance, sensorMinResistance, sensorMaxResistance, 0, 100); // map the values 16700 to 0 18200 to 255
digitalWrite(9, LOW);
digitalWrite(10, LOW);
digitalWrite(11, LOW);
digitalWrite(12, LOW);
digitalWrite(13, LOW);
if (ReadValue < 20) {
digitalWrite(13, HIGH);
} else {
if (ReadValue < 40) {
digitalWrite(13, HIGH);
digitalWrite(12, HIGH);
} else {
if (ReadValue < 60) {
digitalWrite(13, HIGH);
digitalWrite(12, HIGH);
digitalWrite(11, HIGH);
} else {
if (ReadValue < 80) {
digitalWrite(13, HIGH);
digitalWrite(12, HIGH);
digitalWrite(11, HIGH);
digitalWrite(10, HIGH);
} else {
digitalWrite(13, HIGH);
digitalWrite(12, HIGH);
digitalWrite(11, HIGH);
digitalWrite(10, HIGH);
digitalWrite(9, HIGH);
}
}
}
}
delay(100); // Wait for 100 millisecond(s)
}
Cojín inteligente para prevenir úlceras: sensor de presión con Arduino
Sensor:
- Force Sensor (FSR)
Actuador:
- LEDs RGB o buzzer
Idea:
Si una persona lleva mucho tiempo sentada ejerciendo presión en el mismo punto, avisa para que cambie de postura.

int sensor = 0;
void setup()
{
pinMode(A0, INPUT);
pinMode(8, OUTPUT);
Serial.begin(9600);
}
void loop()
{
sensor = analogRead(A0);
if (sensor > 300) {
digitalWrite(8, HIGH);
} else {
digitalWrite(8, LOW);
}
Serial.print("sensor = ");
Serial.println(sensor);
delay(100); // Wait for 100 millisecond(s)
}
Detector de apertura de ventanas en un instituto
Sensor:
- Reed Switch (interruptor magnético)
Actuador:
- LCD o LED
Idea:
Cuando una ventana queda abierta al salir de clase, aparece un aviso.
ODS: 7 (Ahorro energético)

// C++ code
// 6.4 Reed Switch (Magnetic Field Detector)
const int kPinReedSwitch = 2;
const int kPinLed = 13;
void setup() {
pinMode(kPinReedSwitch, INPUT);
digitalWrite(kPinReedSwitch, HIGH);
pinMode(kPinLed, OUTPUT);
}
void loop() {
if(digitalRead(kPinReedSwitch) == LOW){
digitalWrite(kPinLed, HIGH);
}
else{
digitalWrite(kPinLed, LOW);
}
}
Nevera inteligente
Sensor:
- Reed Switch
Actuador:
- Zumbador
Si la puerta permanece abierta más de 30 segundos:
🔊 “¡Cierra la puerta!”
Es similar al anterior. Modifica el código.
Maceta antiestrés
Sensor:
- Capacitive Touch
Actuador:
- Servo que mueve una flor o LEDs
Cuando acaricias la maceta, “la planta se pone contenta”.
ODS: Salud mental.
Proyecto Arduino: El Banco de la Amistad
Casco inteligente
Sensor:
- Tilt Sensor
Actuador:
- LED rojo
Si detecta una caída:
“Accidente detectado”.

#include <Servo.h>
int tilt = 2;
Servo myservo;
void setup()
{
pinMode(tilt, INPUT);
myservo.attach(13);
}
void loop()
{
int reading;
reading = digitalRead(tilt);
if(reading) {
myservo.write(0);
}else{
myservo.write(180);
}
}

Etiqueta:AIDARAC, ies monterroso, robótica, sensor de flexión, tinkercad



