- Labornetzteil AliExpress         
Ergebnis 1 bis 10 von 71

Thema: Minimallösung: IR-Abstandsmessung

Baum-Darstellung

Vorheriger Beitrag Vorheriger Beitrag   Nächster Beitrag Nächster Beitrag
  1. #1
    Moderator Robotik Visionär Avatar von radbruch
    Registriert seit
    27.12.2006
    Ort
    Stuttgart
    Alter
    62
    Beiträge
    5.799
    Blog-Einträge
    8

    Minimallösung: IR-Abstandsmessung

    Hallo

    Die aktuellen Threads zur Abstandsmessung mit der IR-Funktion (nach vorne oder oben) sind ja recht inspirierend, hier mein minimaler Umbau:

    Bild hier   Bild hier   Bild hier   Bild hier  

    Ein Stück Alu-Folie auf einer Seite dreimal gefaltet und auf den Kondensator geklebt (blanke Seite unten!). Der "Reflektor" sollte über die IR-Sendediode hinausragen und ca. 45 Grad haben. Ein Stück Schrupfschlauch auf der IR-Sendediode verhindert Streulicht. (Runde Klebebandpads fertige ich mit einem Locher)

    Hier der Testcode dazu:
    Code:
    #include "asuro.h" 
    #include <stdlib.h> 
    
    int main(void) 
    { 
    
       unsigned char sw, speed;
       unsigned char ir,ir1,ir2;
        
       Init(); 
       DDRD |= (1 << DDD1);   // Port D1 als Ausgang 
       PORTD &= ~(1 << PD1);   // PD1 auf LOW
       OCR2  = 0xFC;
       speed=140;
    
       while(1) 
       {
       ir=PIND & (1 << PD0);
       if (ir || ir1){
          BackLED(OFF,OFF);
          MotorDir(FWD,FWD);
          MotorSpeed(speed,speed);
       } else {
          BackLED(ON,ON);
          MotorDir(RWD,RWD);
          MotorSpeed(speed,speed);
          if (speed > 0) Msleep(500);
          MotorDir(BREAK,RWD);
          MotorSpeed(0,speed);
          if (speed > 0) Msleep(500);
       }
       ir2=ir1; ir1=ir;
    
       sw = PollSwitch();
    /*
       if (sw & 0x01)
          OCR2  = 0xFE;
       if (sw & 0x02)
          OCR2  = 0xFD;
    */
       if (sw & 0x04)
          OCR2  = 0xFC;
       if (sw & 0x08) 
          OCR2  = 0xFB;
    /*
       if (sw & 0x10)
          OCR2  = 0xFA;
       if (sw & 0x20)
          OCR2  = 0xF9;
    */
       } 
       return 0; 
    }
    Der Code basiert auf dem Democode von Waste aus oben erwähnten Betrag. Der Wert für die Modulation der IR-Diode ist etwas fummelig. Wenn alles klappt sieht das dann so aus:

    Bild hier  
    (Meine "Arena" ist ein zum Kreis gebundener Kabelkanaldeckel)

    Video1(avi 0,6MB)
    Video2(avi 1,6MB)

    Flashen muss dann man natürlich von vorne. Viel Spass beim Nachbau.

    Gruß

    mic

    [Edit] Videos neu verlinkt
    Angehängte Dateien Angehängte Dateien
    Bild hier  
    Atmel’s products are not intended, authorized, or warranted for use
    as components in applications intended to support or sustain life!

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •  

Labornetzteil AliExpress