Components and supplies
Infrared Receiver, 38 kHz
Arduino UNO
Infrared Emitter, 18 °
Apps and platforms
Arduino IDE
Project description
Code
Code
c_cpp
1 2// '3-Agustos-2005 Klinikte. Dr.Mustafa Kemal Peker mk.peker@hotmail.com 3// This code derivated from AVR assembler to Picbasic 'http://www.barello.net/ARC/projects/Proximity/ 4// 5// 20 March 2022 code derivated to arduino for microrobots 6// 21-Mart-2022 Girne minnak evimde. 7// int cr = 13; 8// mySerial.println(cr); // Carriage Return 9 10 11 12//#include <SoftwareSerial.h> 13 14//SoftwareSerial mySerial(3, 4); // RX, TX 15const int leftled = 2; // infrared leds 16const int rightled = 3; 17const int sensorpin =4; // 3 pin 38khz standard ir receiver sensor 18 19int cr = 13; 20int prox=0; 21 22int f; 23 24 25void setup() { 26 pinMode(2, OUTPUT); 27 pinMode(3, OUTPUT); 28 pinMode(4,INPUT_PULLUP); 29 30 pinMode(5, OUTPUT); 31 pinMode(6, OUTPUT); 32 // pinMode(7, OUTPUT); 33 34 Serial.begin(9600); 35 Serial.write(cr); 36 delay(500); 37 38} 39 40 41 42void loop(){ 43 44 sense(); 45 46 switch (prox) // sayaca göre switch kodunu çalıştır 47 { 48 case 1: // sayaca 1 ise 49 Serial.println(" Right "); 50 digitalWrite (5,HIGH); 51 break; // swtich den çık 52 53 case 2: // sayaca 2 ise 54 Serial.println(" Left "); 55 digitalWrite (6,HIGH); 56 break;// swtich den çık 57 58 case 3: // sayaca 3 ise 59 Serial.println(" Front "); 60 digitalWrite (7,HIGH); 61 break;// swtich den çık 62 63 default: // other valuees returns( or error code) 64 Serial.println(" Open "); 65 66 } 67 68delay(200); 69digitalWrite(5,LOW); 70 digitalWrite(6,LOW); 71 digitalWrite(7,LOW); 72 73} 74 75 76void sense(){ 77 78 prox=0; 79 80 81 for (int f = 0; f <= 20; f++) { 82 digitalWrite (rightled,HIGH); 83 delayMicroseconds(7); 84 digitalWrite(rightled,LOW); 85} 86 87 88 if (digitalRead(sensorpin) == LOW) { 89 90 prox=1; 91 92 93 } 94 95 delayMicroseconds(255); 96 97for (int f = 0; f <= 20; f++) { 98 digitalWrite (leftled,HIGH); 99 delayMicroseconds(7); 100 digitalWrite(leftled,LOW); 101 102 } 103 104 105 106 if (digitalRead(sensorpin) == LOW) { 107 prox= prox + 2; 108 109 } 110 111 112 delayMicroseconds (255); 113 114 digitalWrite(rightled,LOW); // close IR leds 115 digitalWrite(rightled,LOW); 116 117 118 119 120} 121 122 123 124
Code
c_cpp
1 2// '3-Agustos-2005 Klinikte. Dr.Mustafa Kemal Peker mk.peker@hotmail.com 3// This code derivated from AVR assembler to Picbasic 'http://www.barello.net/ARC/projects/Proximity/ 4// 5// 20 March 2022 code derivated to arduino for microrobots 6// 21-Mart-2022 Girne minnak evimde. 7// int cr = 13; 8// mySerial.println(cr); // Carriage Return 9 10 11 12//#include <SoftwareSerial.h> 13 14//SoftwareSerial mySerial(3, 4); // RX, TX 15const int leftled = 2; // infrared leds 16const int rightled = 3; 17const int sensorpin =4; // 3 pin 38khz standard ir receiver sensor 18 19int cr = 13; 20int prox=0; 21 22int f; 23 24 25void setup() { 26 pinMode(2, OUTPUT); 27 pinMode(3, OUTPUT); 28 pinMode(4,INPUT_PULLUP); 29 30 pinMode(5, OUTPUT); 31 pinMode(6, OUTPUT); 32 // pinMode(7, OUTPUT); 33 34 Serial.begin(9600); 35 Serial.write(cr); 36 delay(500); 37 38} 39 40 41 42void loop(){ 43 44 sense(); 45 46 switch (prox) // sayaca göre switch kodunu çalıştır 47 { 48 case 1: // sayaca 1 ise 49 Serial.println(" Right "); 50 digitalWrite (5,HIGH); 51 break; // swtich den çık 52 53 case 2: // sayaca 2 ise 54 Serial.println(" Left "); 55 digitalWrite (6,HIGH); 56 break;// swtich den çık 57 58 case 3: // sayaca 3 ise 59 Serial.println(" Front "); 60 digitalWrite (7,HIGH); 61 break;// swtich den çık 62 63 default: // other valuees returns( or error code) 64 Serial.println(" Open "); 65 66 } 67 68delay(200); 69digitalWrite(5,LOW); 70 digitalWrite(6,LOW); 71 digitalWrite(7,LOW); 72 73} 74 75 76void sense(){ 77 78 prox=0; 79 80 81 for (int f = 0; f <= 20; f++) { 82 digitalWrite (rightled,HIGH); 83 delayMicroseconds(7); 84 digitalWrite(rightled,LOW); 85} 86 87 88 if (digitalRead(sensorpin) == LOW) { 89 90 prox=1; 91 92 93 } 94 95 delayMicroseconds(255); 96 97for (int f = 0; f <= 20; f++) { 98 digitalWrite (leftled,HIGH); 99 delayMicroseconds(7); 100 digitalWrite(leftled,LOW); 101 102 } 103 104 105 106 if (digitalRead(sensorpin) == LOW) { 107 prox= prox + 2; 108 109 } 110 111 112 delayMicroseconds (255); 113 114 digitalWrite(rightled,LOW); // close IR leds 115 digitalWrite(rightled,LOW); 116 117 118 119 120} 121 122 123 124
Downloadable files
IR-Proximity detector
IR-Proximity detector
IR-Proximity detector
Comments
Only logged in users can leave comments