Está en la página 1de 14

SISTEMAS EMBEBIDOS

INDUSTRIALES
PRACTICAS
Muñeca

Antebrazo

Pinza

Cod
o

Braz
o

Hombro

Base/tronco
Elevación

Giro
const int pecho = 2; //l
const int ptrig = 3; //la pata trigger del CI va al pin 3
const int piezo = 13; //el piezo al pin 13
int duracion, distancia; //para calcular distacia
void setup() {
Serial.begin(9600); //inicia el puerto
pinMode(pecho, INPUT); //define el pin 2 como entrada (pecho)
pinMode(ptrig, OUTPUT); //define el pin 3 como salida (ptrig)
}
void loop() {
digitalWrite(ptrig, LOW); //al comenzar el loop el trigger debe estar en LOW
delay(2);
digitalWrite(ptrig, HIGH); //genera el pulso de trigger por 0,01 ms
delay(0.01);
digitalWrite(ptrig, LOW);
duracion = pulseIn(pecho, HIGH); //tiempo de ida y vuelta en microsegundos
distancia = (duracion/2)*0.034; //distancia al objeto en c
delay(2); //para darle tiempo
if ((distancia >= 500)||(distancia < 0)){ //si la distancia es mayor de 5 m
Serial.println("----------
}
else{
Serial.print(distancia);
Serial.println(" cm");
if(distancia<=20){
tone(piezo,261.63,50);
delay(map(distancia,2,20,50,600));
}
}
#include <Servo.h> //Carga la librería para trabajar con servos
const int pinIzdo = 2; //el pulsador que mueve a 0º va al pin de lectura 2
const int pinDcho = 3; //el pulsador que mueve a 180º va la pin de lectura 3
Servo servito; //Declaramos un objeto tipo Servo llamado servito
int movIzdo=LOW; //Valdrá HIGH cuando apretemos el pulsador que mueve a 0º
int movDcho=LOW; //Valdrá HIGH cuando apretemos el pulsador que mueve a 180º
void setup() {
servito.attach(9); //servito está conectado al pin 9
pinMode(pinIzdo, INPUT);
pinMode(pinDcho, INPUT);
}
void loop() {
movIzdo=digitalRead(pinIzdo);
movDcho=digitalRead(pinDcho);
if ((movIzdo==HIGH)&&(movDcho==LOW)){
servito.write(0);
}
else if ((movIzdo==LOW)&&(movDcho==HIGH)){
servito.write(180);
}
else {
servito.write(90);
}
delay(20);
}
CONTROL PUENTE H
const int sentido = 2; //el pulsador va al pin de lectura 2
const int derA = 9; //pata 7 del CI al pin PWM~ 9
const int derB = 10; //pata 2 del CI al pin PWM~ 10
int vel; //a mayor valor mayor velocidad (entre 0 y 255)
void setup() {
pinMode(sentido, INPUT);
pinMode(derA, OUTPUT);
pinMode(derB, OUTPUT);
}
void loop() {
vel=analogRead(A0)/4; //vel vale entre 0 (0/4) y 255 (1023/4)
if (digitalRead(sentido)==LOW){
analogWrite(derA,vel);
analogWrite(derB,0);
}
else {
analogWrite(derA,0);
analogWrite(derB,vel);
}
}
CONTROL INALAMBRICO MOTOR SERVO
#include <Servo.h> //Carga la librería para trabajar con if(encendido==1){
servos digitalWrite(led1,LOW);
const int led1=13; }
const int led2=11; encendido=1-encendido;
Servo servito; //Declaramos un objeto tipo Servo llamado }
servito if (lectura=='b'){
char lectura; servito.write(180);
int encendido=0;//el carácter G no se puede conseguir }
con la App if (lectura=='c'){
int brillo=0; servito.write(90);
void setup() { }
Serial.begin(9600); if (lectura=='d'){
servito.attach(7); //servito está conectado al pin 7 servito.write(0);
pinMode(led1, OUTPUT); }
pinMode(led2, OUTPUT); if ((lectura=='a')&&(brillo<=225)){
digitalWrite(led1, LOW); brillo=brillo+25;
analogWrite(led2, 0); }
servito.write(90); if ((lectura=='e')&&(brillo>=25)){
} brillo=brillo-25;
void loop() { }
analogWrite(led2,brillo); delay(100);
if (Serial.available()>0){ }
lectura=Serial.read();
}
else{ //mientras no introduzcamos otro caracter, ...
lectura=' '; //lectura vale un espacio en blanco
}
if (lectura=='D'){
if (encendido==0){
digitalWrite(led1,HIGH);
}

También podría gustarte