Pages: [1]   Go Down
Author Topic: Aplication of ultrasonic (català)  (Read 445 times)
0 Members and 1 Guest are viewing this topic.
Offline Offline
Jr. Member
**
Karma: 0
Posts: 55
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Está en catalán pero creo que se entiende bien. Espero que a alguien le llegue a ser de utilidad, cualquier duda preguntad!
 
 
/*                          CODI LLIURE                          */
 
/* Es mostra per pantalla la distancia a la que es troba l'objecte
del sensor d'ultrasons. Si es prem el polsador, el LED i el zumbador
s'activaran en cas que la distancia a l'ultrasons siga <=20cm; en
cas contrari romandran desactivats. /*
 
 
/* Crida a la llibreria Ultrasonic */
#include <Ultrasonic.h>
 
/* Creacio nou Ultrasonic */
Ultrasonic ultrasons(7,8);
 
/* Variables principals */
int LedPin = 13;
int zumb = 12;
int boto = 2;
int dist = 0;
 
/* Variables relacionades amb l'interruptor */
int estat = LOW;
int anterior = HIGH;
int lectura;
 
/* Variables de temps */
long temps = 0;
long antirebot = 200;
 
/* Inicialitzacio del programa */
void setup() {
  Serial.begin(9600);
  pinMode(LedPin, OUTPUT);
  pinMode(zumb, OUTPUT);
  pinMode(boto, INPUT);
  Serial.println("\t\t\t\tAplicacio Ultrasonic!\n");
  delay(5000);
}
 
/* Bucle del programa. Estructura principal */
void loop() {
  dist = ultrasons.Ranging(CM);
  Serial.print("Distancia: ");
  Serial.print(dist); 
  Serial.println(" cm");
  lectura = digitalRead(boto);
  if(lectura==HIGH && anterior==LOW && millis()-temps>antirebot){
    if(estat==HIGH) estat = LOW;
    else estat = HIGH;
    temps = millis();
  }
  if(dist<=20){
    digitalWrite(LedPin, estat);
    digitalWrite(zumb, estat);
  }
  else{
    digitalWrite(LedPin, LOW);
    digitalWrite(zumb, LOW);
  }
  anterior = lectura;
  delay(250);
}
 
/* Fi del programa */
- See more at: http://www.arduteka.com/foro/programacion/aplicacion-del-ultrasonic/#p340
Logged

Spain
Offline Offline
God Member
*****
Karma: 25
Posts: 956
Arduino rocks
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Gracias por el aporte.

Por mi parte no hay problema, entiendo un poco el Valenciano, mismo idioma...

Un saludo.

Permiteme, para el que no lo entienda, le pongo una traduccion libre:
Code:
/*                          CODIGO LIBRE                          */
 
/* Muestra por pantalla la distancia a la que se encuentra el objeto
del sensor de ultrasonidos. Si se presiona el pulsador, el LED y el zumbador
se activaran en tanto que la distancia al ultrasonido sea <=20cm; en
caso contrario permaneceran desactivados. /*
 
 
/* Llama a la libreria Ultrasonic */
#include <Ultrasonic.h>
 
/* Crea nuevo Ultrasonic */
Ultrasonic ultrasons(7,8);
 
/* Variables principales */
int LedPin = 13;
int zumb = 12;
int boto = 2;
int dist = 0;
 
/* Variables relacionadas con el interruptor */
int estat = LOW;
int anterior = HIGH;
int lectura;
 
/* Variables de tiempo */
long temps = 0;
long antirebot = 200;
 
/* Inicializacion del programa */
void setup() {
  Serial.begin(9600);
  pinMode(LedPin, OUTPUT);
  pinMode(zumb, OUTPUT);
  pinMode(boto, INPUT);
  Serial.println("\t\t\t\tAplicacion Ultrasonic!\n");
  delay(5000);
}
 
/* Bucle del programa. Estructura principal */
void loop() {
  dist = ultrasons.Ranging(CM);
  Serial.print("Distancia: ");
  Serial.print(dist);
  Serial.println(" cm");
  lectura = digitalRead(boto);
  if(lectura==HIGH && anterior==LOW && millis()-temps>antirebot){
    if(estat==HIGH) estat = LOW;
    else estat = HIGH;
    temps = millis();
  }
  if(dist<=20){
    digitalWrite(LedPin, estat);
    digitalWrite(zumb, estat);
  }
  else{
    digitalWrite(LedPin, LOW);
    digitalWrite(zumb, LOW);
  }
  anterior = lectura;
  delay(250);
}
 
/* Fin del programa */
- See more at: http://www.arduteka.com/foro/programacion/aplicacion-del-ultrasonic/#p340
« Last Edit: June 16, 2013, 03:55:38 pm by Heke » Logged

CUIDADO !! MIS POST NO SON APTOS PARA MENORES. SI ERES MENOR DE 14 AÑOS DEBES DE LEERLOS ACOMPAÑADO DE UN ADULTO

Offline Offline
Jr. Member
**
Karma: 0
Posts: 55
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Sí, de echo yo soy valenciano. He puesto catalán para generalizarlo más.

Una abraçada company i gracias por la traducción!
Logged

Spain
Offline Offline
God Member
*****
Karma: 25
Posts: 956
Arduino rocks
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

De res, benvingut al fòrum   smiley-mr-green
Logged

CUIDADO !! MIS POST NO SON APTOS PARA MENORES. SI ERES MENOR DE 14 AÑOS DEBES DE LEERLOS ACOMPAÑADO DE UN ADULTO

Offline Offline
Jr. Member
**
Karma: 0
Posts: 55
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

He hecho una modificación añadiendo al circuito un contador que va contando las veces que estando el interruptor cerrado se ha acercado <20cm el objeto.



   

Code:
    /*                          CODI LLIURE                          */
     
    /* Es mostra per pantalla la distancia a la que es troba l'objecte
    del sensor d'ultrasons. Si es prem el polsador, el LED i el zumbador
    s'activaran en cas que la distancia a l'ultrasons siga <=20cm; en
    cas contrari romandran desactivats. Cada vegada que el LED i el
    zumbador s'activen, el contador display suma 1. Cada 10
    activacions, es mostra per pantalla la quantitat registrada./*
     
     
    /* Crida a la llibreria Ultrasonic */
    #include <Ultrasonic.h>
     
    /* Creacio nou Ultrasonic */
    Ultrasonic ultrasons(4,7);
     
    /* Variables principals */
    const int LedPin = 13;
    const int zumb = 12;
    const int boto = 2;
    int dist = 0;
    int cont = 0;
    int acts = 0;
     
    /* Variables relacionades amb l'interruptor */
    int estat = LOW;
    int anterior = HIGH;
    int lectura;
     
    /* Variables de temps */
    long temps = 0;
    const long antirebot = 200;
     
    /* Inicialitzacio del programa */
    void setup() {
      Serial.begin(9600);
      pinMode(LedPin, OUTPUT);
      pinMode(zumb, OUTPUT);
      pinMode(boto, INPUT);
      Serial.println("\t\t\t\tAplicacio Ultrasonic!\n");
      display (1,1,1,1,1,1,0);
      pinMode(9, OUTPUT);
      pinMode(10, OUTPUT);
      pinMode(11, OUTPUT);
      pinMode(8, OUTPUT);
      pinMode(A0, OUTPUT);
      pinMode(A1, OUTPUT);
      pinMode(A2, OUTPUT);
      delay(5000);
    }
     
    /* Crea la funcio del display de 7 segments */
    void display(int a, int b, int c, int d, int e, int f, int g){
      digitalWrite (A0,a);
      digitalWrite (8,b);
      digitalWrite (9,c);
      digitalWrite (10,d);
      digitalWrite (11,e);
      digitalWrite (A1,f);
      digitalWrite (A2,g);
    }
     
    void condicions(int n){
      switch(n){
        case 0: display (1,1,1,1,1,1,0); break;
        case 1: display (0,1,1,0,0,0,0); break;
        case 2: display (1,1,0,1,1,0,1); break;
        case 3: display (1,1,1,1,0,0,1); break;
        case 4: display (0,1,1,0,0,1,1); break;
        case 5: display (1,0,1,1,0,1,1); break;
        case 6: display (1,0,1,1,1,1,1); break;
        case 7: display (1,1,1,0,0,0,0); break;
        case 8: display (1,1,1,1,1,1,1); break;
        case 9: display (1,1,1,0,0,1,1); break;
      }
    }
     
    /* Bucle del programa. Estructura principal */
    void loop() {
      dist = ultrasons.Ranging(CM);
      Serial.print("Distancia: ");
      if(dist<10) Serial.print(" ");
      Serial.print(dist); 
      Serial.print(" cm");
      Serial.print("\t\tNombre d'activacions: ");
      Serial.println(acts);
      lectura = digitalRead(boto);
      if(lectura==HIGH && anterior==LOW && millis()-temps>antirebot){
        if(estat==HIGH) estat = LOW;
        else estat = HIGH;
        temps = millis();
      }
      if(dist<=20){
        digitalWrite(LedPin, estat);
        digitalWrite(zumb, estat);
      }
      else{
        digitalWrite(LedPin, LOW);
        digitalWrite(zumb, LOW);
      }
      anterior = lectura;
      if(dist<=20 && estat==HIGH){
        cont++;
        condicions(cont);
      }
      if(cont>=10){
       condicions(0);
       cont = 0;
       acts += 10;
      }
      delay(250);
    }
     
    /* Fi del programa */

Logged

Pages: [1]   Go Up
Jump to: