Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
void loop() {
for(leftRightPos = 0; leftRightPos < 180; leftRightPos++) {
// De izquierda a derecha.
leftRightServo.write(leftRightPos);
for (index = 0; index<numReadings; index++) { // Repite
tantas veces como número de lecturas en cada posicion
// Pulso de 10us para inicial el modulo
digitalWrite(trigPin, HIGH);
delayMicroseconds(10);
digitalWrite(trigPin, LOW);
Serial.print("X");
Serial.print(leftRightPos);
Serial.print("V");
Serial.println(average);
}
}
CÓDIGO EN PROCESSING
Este programa es para gráficos, en este proyecto
dibujaremos un radar, en el que detectara objetos
estáticos asi como objetos en movimiento.
import processing.serial.*; // Importa la libreria serie
Serial myPort; // Declara el puerto serie
float x, y; // Variable para almacenar las
coordenadas
int radius = 350; // Establece el radio de los
objetos
int w = 300; // Establece un valor de anchura
arbitraria
int degree = 0; // Varible para la posición del
servo en grados
int value = 0; // Variable para el valor del
sensor
int motion = 0; // Variable para indicar el
sentido del barrido del servo
int[] newValue = new int[181]; // Matriz para almacenar cada
valor nuevo de cada posición del servo
int[] oldValue = new int[181]; // Matriz para almacenar cada
valor previo de cada posición del servo
PFont myFont; // Variable para configuración
de fuente
int radarDist = 0; // set value to configure Radar
distance labels
int firstRun = 0; // value to ignore triggering
motion on the first 2 servo sweeps
int lf = 10; // ASCII retorno de carro
void setup()
{
size(750, 450); // Establece el tamaño de la
ventana
background (0); // Establece a negro del fondo
de la ventana
myFont = createFont("verdana", 16); // Parametros de la fuente
textFont(myFont); // Establece los parametros de
la fuente
println(Serial.list()); // Lista todos los puertos
series
myPort = new Serial(this, Serial.list()[0], 9600); // Establece
un puerto serie
myPort.bufferUntil(lf); // Almacena en el bufer
hasta llegar un retorno de carro
}
/* draw the screen */
void draw(){
fill(0); // set the following
shapes to be black
noStroke(); // set the following
shapes to have no outline
ellipse(radius, radius, 750, 750); // draw a circle with a
width/ height = 750 with its center position (x and y) set by
the radius
rectMode(CENTER); // set the following
rectangle to be drawn around its center
rect(350,402,800,100); // draw rectangle (x, y,
width, height)
if (degree >= 179) { // if at the far right
then set motion = 1/ true we're about to go right to left
motion = 1; // this changes the
animation to run right to left
}
if (degree <= 1) { // if servo at 0 degrees
then we're about to go left to right
motion = 0; // this sets the animation
to run left to right
}
/* setup the radar sweep */
#include <Servo.h>
Servo servo1; // Crea el servo1 con las librerias de Servo.h
int estado=0;
int retardo=100;
int analogo=0;
void setup(){
servo1.attach(4);
pinMode(13,OUTPUT);
pinMode(12,OUTPUT);
pinMode(11,OUTPUT);
pinMode(10,OUTPUT);
pinMode(9,OUTPUT);
pinMode(8,OUTPUT);
pinMode(7,OUTPUT);
pinMode(6,OUTPUT);
pinMode(5,OUTPUT);
pinMode(4,OUTPUT);
pinMode(3,OUTPUT);
Serial.begin(9600);
delay(1000);
}
void loop(){
if(Serial.available()>0){ // Si el puerto serie esta habilitadp
estado = Serial.read(); // Lee lo que llega por el puerto Serie
}
if(estado=='t'){
analogWrite(5,3);
}
if(estado=='u'){
analogWrite(5,8);
}
if(estado=='v'){
analogWrite(5,20);
}
if(estado=='w'){
analogWrite(5,30);
}
if(estado=='x'){
analogWrite(5,60);
}
if(estado=='y'){
analogWrite(5,125);
}
if(estado=='z'){
analogWrite(5,255);
}
if(estado=='2'){
analogWrite(3,3);
}
if(estado=='3'){
analogWrite(3,8);
}
if(estado=='4'){
analogWrite(3,20);
}
if(estado=='5'){
analogWrite(3,30);
}
if(estado=='6'){
analogWrite(3,60);
}
if(estado=='7'){
analogWrite(3,125);
}
if(estado=='8'){
analogWrite(3,255);
}
int izqA = 5;
int izqB = 6;
int derA = 9;
int derB = 10;
int vel = 255; // Velocidad de los motores (0-255)
int estado = 'c'; // inicia detenido
void setup() {
Serial.begin(9600); // inicia el puerto serial para comunicacion con el
Bluetooth
pinMode(derA, OUTPUT);
pinMode(derB, OUTPUT);
pinMode(izqA, OUTPUT);
pinMode(izqB, OUTPUT);
void loop() {
digitalWrite(13,LOW);
}
else{ // Si no hay obstaculos se desplaza al
frente
analogWrite(derB, 0);
analogWrite(izqB, 0);
analogWrite(derA, vel);
analogWrite(izqA, vel);
}
}
if(estado=='g'){ // Boton SER, activa el Servomotor
servo1.write(30); // Gira el servo a 30 grados
delay(1000); // Espera 1000 mili segundos a que el
servo llegue a la posicion
}
Programa
final domotica
#include <Servo.h>
int izqA = 5;
int izqB = 6;
int derA = 9;
int retardo=100;
int analogo=0;
int T = 1000;
void setup() {
servo1.attach(4);
pinMode(derA, OUTPUT);
pinMode(derB, OUTPUT);
pinMode(izqA, OUTPUT);
pinMode(izqB, OUTPUT);
pinMode(13,OUTPUT);
pinMode(12,OUTPUT);
pinMode(11,OUTPUT);
pinMode(8,OUTPUT);
pinMode(7,OUTPUT);
pinMode(4,OUTPUT);
pinMode(3,OUTPUT);
pinMode(2,OUTPUT);
delay(100);
void loop() {
if(estado== 'o' ){
digitalWrite(8, HIGH);
delay(T);
digitalWrite(8, LOW);
delay(T);
if(estado== 'k' ){
digitalWrite(8, LOW);
estado = Serial.read();
digitalWrite(13,HIGH);
}
if(estado== 'e' ){
digitalWrite(13,LOW);
if(estado== 'f'){
digitalWrite(12,HIGH);
if(estado== 'g' ){
digitalWrite(12,LOW);
if(estado== 'h'){
digitalWrite(11,HIGH);
if(estado== 'i' ){
digitalWrite(11,LOW);
if(estado== 'l' ){
digitalWrite(7,HIGH);
if(estado== 'm' ){
digitalWrite(7,LOW);
if(estado== 'n' ){
digitalWrite(2,HIGH);
if(estado== 'p' ){
digitalWrite(2,LOW);
if(estado=='2'){
analogWrite(3,3);
if(estado=='3'){
analogWrite(3,8);
if(estado=='4'){
analogWrite(3,20);
if(estado=='5'){
analogWrite(3,30);
if(estado=='6'){
analogWrite(3,60);
if(estado=='7'){
analogWrite(3,125);
if(estado=='8'){
analogWrite(3,255);
servo1.write(0);
if(estado== 'B' ){
servo1.write(90);
if(estado== 'C' ){
servo1.write(160);
analogWrite(derB, 0);
analogWrite(derA, vel);
analogWrite(derB, 0);
analogWrite(izqB, 0);
analogWrite(derA, 0);
analogWrite(izqA, 0);
analogWrite(derA, 0);
analogWrite(derB, vel);
analogWrite(izqB, 0);
analogWrite(izqA, vel);
analogWrite(izqA, 0);
analogWrite(izqB, vel);
analogo=analogRead(A0);
Serial.print(analogo);
Serial.println("°C");
delay (retardo);
estado=0;
delay(retardo);