dijous, 8 de desembre del 2011

Info sobre el track liner sensor sen0017



Aquí hi ha una mica d'informació (connexió dels cables)
Output connector: 3-wire interface (1 - signal, 2 - power is, 3 - power losses)

2 comentaris:

  1. He probat un programa amb aquest sensor, a casa tinc un que funciona, l'intentaré trobar, pero aquest que he fet no acaba de funciona com esperava. El led 13 que be amb la placa no s'apaga segons el sensor. T'atjunto el programa:


    int sensorPin = A0; // selecciona el pin de entrada para el potenciómetro
    int ledPin = 13; // selecciona el pin para el LED


    void setup() {

    // declara el ledPin como salida (OUTPUT):
    pinMode(ledPin, OUTPUT);
    pinMode(sensorPin, INPUT);
    }

    void loop() {

    // lee el valor del sensor:
    int Lectura = analogRead(sensorPin);
    Serial.print( Lectura);

    if ( Lectura > 0){
    digitalWrite(ledPin, 255);
    }
    if ( Lectura < 0){
    digitalWrite(ledPin, 0);
    }
    }

    ResponElimina
    Respostes
    1. Sóc l'eudald, he fet el programa de seguidor de linea, te'l penjo:(el programa que te penjat avans ja l'he solucionat)

      // SEGUIDOR DE LINEA


      /* --------Digitació dels cables--------
      Sensor:
      El cable gris es per la senyal (AO)
      El cable vermell es per la alimentació (5v)
      El cable negre es per la negre (GND)

      Mecanisme cotxe:
      El pin digital 3 , Releuno (Cable Groc)
      El pin digital 6, Reledos (Cable tronja)
      El pin digital 9, Reletres (Cable verd)
      El pin digital 12, Relecuatro (Cable blau)

      */

      //------Donem noms a les conexions-------
      int sensorPin = A0; // selecciona el pin de entrada para el sensor

      int Releuno = 3; // El pin digital 3 l'anomenem Releuno
      int Reledos = 6; // El pin digital 6 l'anomenem Reledos
      int Reletres = 9; // El pin digital 9 l'anomenem Reletres
      int Relecuatro = 12; //El pin digital 12 l'anomenem Relecuatro

      //-----------Iniciem les dades de la placa-------
      void setup() {
      pinMode(Releuno, OUTPUT); // Com per exemple ha de saber que tots els pins amb els que treballarem
      pinMode(Reledos, OUTPUT); // son sortides per aixó utilitzem l'opció del pinMode() que el que fa es
      pinMode(Reletres, OUTPUT); // establir els pins, als que anteriorment els hem donat noms, com a sortida.
      pinMode(Relecuatro, OUTPUT);
      Serial.begin(9600); // inicia la comunicació serial

      }


      //------Iniciem el bucle-------------
      void loop() {


      /* --------------------------------------Seguretat--------------------------------------

      En aquest apartat he fet una seguretat al circuit, de forma que si algu intentes programar
      que una branca del circuit quedes en curcircuit aquest apartat ho evitaria, ES MOLT IMPORTANT QUE
      SEMPRE QUE ES TREBALLI AMB EL COTXE AL PRINCIPI DEL VOID LOOP ES POSI AQUEST APARTAT, SINO PODRIEM
      PROGRAMAR MALAMENT I CREAR UN CURCIRCUIT, amb aquest apartat tenim la seguretat de no crear curcircuit*/

      if ( Releuno > 0){ // si el releuno esta ences el reledos sempre estara apagat
      digitalWrite(Reledos,0);
      }
      if ( Reledos > 0){ // si el reledos esta ences el releuno sempre estara apagat
      digitalWrite(Releuno,0);
      }
      if ( Reletres > 0){ // si el reletres esta ences el relecuatre sempre estara apagat
      digitalWrite(Relecuatro,0);
      }
      if ( Relecuatro > 0){ // si el relecuatre esta ences el reletres sempre estara apagat
      digitalWrite(Reletres,0);
      }

      /* ---------------------------------------Moviment---------------------------------------------------
      -Si activem el Releuno la roda de la esquerre gira endevant
      -Si activem el Reletres la roda de la dreta gira endevant
      --Per que avanci el Cotxe s'hauran d'activar el Releuno i el Reletres.

      -Si activem el Reledos la roda de la esquerre gira endarrera
      -si activem el Relecuatro la roda de la freta gira endarrera
      --Per que el cotxe vagi endarrera s'hauran d'activar els dos ultims. */


      // PROGRAMA DE MOVIMENT: Aqui ja vindrien les ordres que segueix per moures.

      int Lectura = analogRead(sensorPin); // lee el valor del sensor:
      // La lectura del sensor va de 0 al 1004

      while ( Lectura < 500){
      digitalWrite ( Releuno,HIGH);
      digitalWrite ( Reletres,HIGH);
      Serial.println("Negre");
      }

      digitalWrite ( Releuno,HIGH);
      digitalWrite ( Reletres,LOW);
      Serial.println("Gir.Esquerre");

      while ( Lectura < 500){
      digitalWrite ( Releuno,HIGH);
      digitalWrite ( Reletres,HIGH);
      Serial.println("Negre");
      }

      digitalWrite ( Releuno,LOW);
      digitalWrite ( Reletres,HIGH);
      Serial.println("Gir.Dreta");


      }

      Elimina