Arduino en español
Circuitos con Arduino - Juan Antonio Villalpando
-- Tutorial de iniciación a Arduino --
Volver al índice del tutorial
____________________________
7B.- Sensor de peso. DF9-40.
- Este sensor detecta un peso o una presión. Presión es fuerza dividido entre superficie.
- Al realizar una presión sobre él, cambia su resistencia óhmica, entre 10MΩ y 200Ω.
- Cuando no presionamos tiene unos 10MΩ y cuando presionamos fuertemente tendrá unos 200Ω.
- Este sensor el DF9-40 mide de 0 a 18 kg, otros sensores de peso miden otra gama. (500g, 2kg, 5 kg, 10kg, 20kg)
- El número 40, significa que mide hasta 40 libras, esto es unos 18 kg.
- Precisión: 2,5%
- Tensión utilizada 3,3 V (aunque la he utilizado con 5 V sin ningún problema de avería ni medida).
- Observa que la gráfica no es lineal.
____________________________________
- Conexiones.
____________________________________
- Código.
peso.ino |
// Juan A. Villalpando
// kio4.com
int pinsensor = 0; // Conectado a A0
int lectura;
void setup(){
// Monitor Serie.
Serial.begin(9600);
}
void loop () {
lectura = analogRead(pinsensor);
Serial.print("Lectura analogica = ");
Serial.println(lectura);
// Comparaciones
if(lectura<10) {
Serial.print("No hay presion.");
} else if (lectura<200) {
Serial.print("Poca presion.");
} else if (lectura<500) {
Serial.print("Algo de presion.");
} else if (lectura<800) {
Serial.print("Presion fuerte.");
} else {
Serial.print("Fortisima presion.");
}
delay(1000);
Serial.println();
}
|
________________
- Propuesta.
- Aquí he puesto la conexión de la LDR y su código del tutorial anteior.
- Cambia la LDR por el sensor de peso, conéctalo al terminal A2 como lo estaba la LDR. Conecta un LED9 como indico en el dibujo.
- Modifica el código de la LDR para que funcione en sensor de peso.
- Según el peso, el LED9 iluminará más o menos por PWM.
- Cambia los valores del Map. Consulta el valor máximo y mínimo conseguido al presiona el sensor de peso, y lo pones en el map.
____________________________________
- Código de la LDR.
codigo_de_ldr.ino |
/*
Juan A. Villalpando
kio4.com
*/
// Al llegar más o menos luz a la LDR esta tiene más o menos resistencia.
// La resistencia de la LDR cambia el nivel de tensión en la A2
// Mapeamos el nivel de tensión obtenida entre 0 y 100 para obtener un abanico de DutyCycle
// Le aplicamos al LED9 una PWM con el Duty Cycle correspondiente.
#define LED9 9 // LED 9 int P2 = A2; // ANALOG IN: A2, va a la LDR.
int entrada;
int DutyCycle;
void setup() {
// Los terminales ANALOG IN no hay que configurarlos porque siempre son de entrada.
pinMode(LED9, OUTPUT);
Serial.begin(9600);
}
void loop() {
entrada = analogRead(P2); //
DutyCycle = map(entrada, 60, 500, 0, 255); // Cambiamos los valores a 255.
analogWrite(LED9, DutyCycle); // Enviamos a LED9 un Duty Cycle del 0 al 100.
Serial.print("Entrada: "); Serial.print(entrada); Serial.print(" Duty Cycle: "); Serial.print(DutyCycle);
Serial.println();
delay(1000);
}
|
________________________________
|