Project description
Code
Angle and Distance Measurement Device using Arduino
h
1 2 3/* ----------------------------------------------------------------------------- 4 Connections: 5 RS pin of LCD to PIN 12 6 EN pin of LCD to PIN 11 7 RW pin to GND 8 X pin of accelerometer to AP1 9 Y pin of accelerometer to AP2 10 Z pin of accelerometer to AP3 11 Switch to P1 (Digital Pin) 12 AREF(on Board) to 5V 13 ECHO pin of HCSR04 to P7 (Digital) 14 TRIG pin of HCSR04 to P6 (Digital) 15----------------------------------------------------------------------------- */ 16 17 18#include <LiquidCrystal.h> 19#define ADC_ref 5 // ADC reference Voltage 20#define zero_x 1.799 21#define zero_y 1.799 22#define zero_z 1.799 23#define echoPin 7 24#define trigPin 6 25#define selectSwitch 1 26#define sensitivity_x 0.4 27#define sensitivity_y 0.4 28#define sensitivity_z 0.4 29unsigned int value_x; 30unsigned int value_y; 31unsigned int value_z; 32float xv; 33float yv; 34float zv; 35float angle; 36LiquidCrystal lcd(12,11,5,4,3,2); 37void setup() 38 { 39 analogReference(ADC_ref); 40 pinMode(selectSwitch,INPUT); 41 pinMode(trigPin,OUTPUT); 42 pinMode(echoPin,INPUT); 43 lcd.clear(); 44 lcd.begin(16,2); 45 lcd.print("Tilt & Distance"); 46 delay(1000); 47 lcd.setCursor(0,2); 48 lcd.print(" Measurement "); 49 delay(2000); 50 lcd.clear(); 51 lcd.setCursor(0,0); 52 lcd.print(" ADXL335,HCSR04 "); 53 delay(1000); 54 lcd.setCursor(0,1); 55 lcd.print(" & Freeduino 1.1"); 56 delay(2000); 57 lcd.clear(); 58 lcd.setCursor(0,1); 59 lcd.print(" ...deepesh"); 60 delay(2000); 61 lcd.clear(); 62 } 63void loop() 64 { 65 int distance,duration; 66 value_x = analogRead(1); 67 value_y = analogRead(2); 68 value_z = analogRead(3); 69 xv=(value_x/1024.0*ADC_ref-zero_x)/sensitivity_x; 70 yv=(value_y/1024.0*ADC_ref-zero_y)/sensitivity_y; 71 zv=(value_z/1024.0*ADC_ref-zero_z)/sensitivity_z; 72 angle =atan2(-yv,-zv)*57.2957795+180; 73 if(digitalRead(selectSwitch)==HIGH) 74 { 75 lcd.setCursor(0,0); 76 lcd.print("Tilt: "); 77 lcd.print(angle); 78 lcd.print(" deg"); 79 digitalWrite(trigPin, HIGH); 80 delayMicroseconds(1000); 81 digitalWrite(trigPin, LOW); 82 duration = pulseIn(echoPin, HIGH); 83 distance = (duration/2) / 29.1; 84 if (distance >= 300 || distance <= 0) 85 { 86 lcd.setCursor(0,1); 87 lcd.print("Out of Range"); 88 } 89 else 90 { 91 lcd.setCursor(0,1); 92 lcd.print("Distance: "); 93 lcd.print(distance); 94 lcd.print(" cm "); 95 } 96 delay(1000); 97 lcd.clear(); 98 } 99 else 100 { 101 lcd.setCursor(0,0); 102 lcd.print("X="); 103 lcd.print(xv); 104 lcd.print(" Y="); 105 lcd.print(yv); 106 lcd.setCursor(0,1); 107 lcd.print(" Z= "); 108 lcd.print(zv); 109 delay(1000); 110 } 111}
Downloadable files
Angle and Distance Measurement Device using Arduino
Angle and Distance Measurement Device using Arduino

Angle and Distance Measurement Device using Arduino
Angle and Distance Measurement Device using Arduino

Comments
Only logged in users can leave comments