Components and supplies
1
MPU6050 Accelerometer
1
Arduino UNO
10
DC Motor, 12 V
Project description
Code
untitled
arduino
1#include<Wire.h> 2 3const int MPU_addr=0x68; 4int16_t AcX,AcY,AcZ,Tmp,GyX,GyY,GyZ; 5 6int minVal=265; 7int maxVal=402; 8 9double x; 10double y; 11double z; 12 13void setup(){ 14Wire.begin(); 15Wire.beginTransmission(MPU_addr); 16Wire.write(0x6B); 17Wire.write(0); 18Wire.endTransmission(true); 19Serial.begin(9600); 20pinMode(2,OUTPUT); 21pinMode(3,OUTPUT); 22pinMode(4,OUTPUT); 23pinMode(5,OUTPUT); 24pinMode(6,OUTPUT); 25pinMode(7,OUTPUT); 26pinMode(8,OUTPUT); 27pinMode(9,OUTPUT); 28pinMode(10,OUTPUT); 29 30 31} 32void loop(){ 33Wire.beginTransmission(MPU_addr); 34Wire.write(0x3B); 35Wire.endTransmission(false); 36Wire.requestFrom(MPU_addr,14,true); 37AcX=Wire.read()<<8|Wire.read(); 38AcY=Wire.read()<<8|Wire.read(); 39AcZ=Wire.read()<<8|Wire.read(); 40int xAng = map(AcX,minVal,maxVal,-90,90); 41int yAng = map(AcY,minVal,maxVal,-90,90); 42int zAng = map(AcZ,minVal,maxVal,-90,90); 43 44x= RAD_TO_DEG * (atan2(-yAng, -zAng)+PI); 45y= RAD_TO_DEG * (atan2(-xAng, -zAng)+PI); 46z= RAD_TO_DEG * (atan2(-yAng, -xAng)+PI); 47 48Serial.print("AngleX= "); 49Serial.println(x); 50 51Serial.print("AngleY= "); 52Serial.println(y); 53 54Serial.print("AngleZ= "); 55Serial.println(z); 56Serial.println("-----------------------------------------"); 57delay(400); 58if(x<=10||x>=1) 59{digitalWrite(2,HIGH); 60digitalWrite(3,LOW); 61digitalWrite(4,LOW); 62digitalWrite(5,LOW); 63digitalWrite(6,LOW); 64digitalWrite(7,LOW); 65digitalWrite(8,LOW); 66digitalWrite(9,LOW); 67digitalWrite(10,LOW); 68digitalWrite(11,LOW); 69} 70 71if(x<=20||x>=11) 72{digitalWrite(2,HIGH); 73digitalWrite(3,HIGH); 74digitalWrite(4,LOW); 75digitalWrite(5,LOW); 76digitalWrite(6,LOW); 77digitalWrite(7,LOW); 78digitalWrite(8,LOW); 79digitalWrite(9,LOW); 80digitalWrite(10,LOW); 81digitalWrite(11,LOW); 82} 83if(x<=30||x>=21) 84{digitalWrite(2,HIGH); 85digitalWrite(3,HIGH); 86digitalWrite(4,HIGH); 87digitalWrite(5,LOW); 88digitalWrite(6,LOW); 89digitalWrite(7,LOW); 90digitalWrite(8,LOW); 91digitalWrite(9,LOW); 92digitalWrite(10,LOW); 93digitalWrite(11,LOW); 94} 95if(x<=40||x>=31) 96{digitalWrite(2,HIGH); 97digitalWrite(3,HIGH); 98digitalWrite(4,HIGH); 99digitalWrite(5,HIGH); 100digitalWrite(6,LOW); 101digitalWrite(7,LOW); 102digitalWrite(8,LOW); 103digitalWrite(9,LOW); 104digitalWrite(10,LOW); 105digitalWrite(11,LOW); 106} 107if(x<=50||x>=41) 108{digitalWrite(2,HIGH); 109digitalWrite(3,HIGH); 110digitalWrite(4,HIGH); 111digitalWrite(5,HIGH); 112digitalWrite(6,HIGH); 113digitalWrite(7,LOW); 114digitalWrite(8,LOW); 115digitalWrite(9,LOW); 116digitalWrite(10,LOW); 117digitalWrite(11,LOW); 118} 119if(x<=60||x>=51) 120{digitalWrite(2,HIGH); 121digitalWrite(3,HIGH); 122digitalWrite(4,HIGH); 123digitalWrite(5,HIGH); 124digitalWrite(6,HIGH); 125digitalWrite(7,HIGH); 126digitalWrite(8,LOW); 127digitalWrite(9,LOW); 128digitalWrite(10,LOW); 129digitalWrite(11,LOW); 130} 131 132if(x<=70||x>=61) 133{digitalWrite(2,HIGH); 134digitalWrite(3,HIGH); 135digitalWrite(4,HIGH); 136digitalWrite(5,HIGH); 137digitalWrite(6,HIGH); 138digitalWrite(7,HIGH); 139digitalWrite(8,HIGH); 140digitalWrite(9,LOW); 141digitalWrite(10,LOW); 142digitalWrite(11,LOW); 143} 144 145if(x<=80||x>=71) 146{digitalWrite(2,HIGH); 147digitalWrite(3,HIGH); 148digitalWrite(4,HIGH); 149digitalWrite(5,HIGH); 150digitalWrite(6,HIGH); 151digitalWrite(7,HIGH); 152digitalWrite(8,HIGH); 153digitalWrite(9,HIGH); 154digitalWrite(10,LOW); 155digitalWrite(11,LOW); 156} 157 158if(x<=90||x>=81) 159{digitalWrite(2,HIGH); 160digitalWrite(3,HIGH); 161digitalWrite(4,HIGH); 162digitalWrite(5,HIGH); 163digitalWrite(6,HIGH); 164digitalWrite(7,HIGH); 165digitalWrite(8,HIGH); 166digitalWrite(9,HIGH); 167digitalWrite(10,HIGH); 168digitalWrite(11,LOW); 169} 170 171if(x<=90||x>=81) 172{digitalWrite(2,HIGH); 173digitalWrite(3,HIGH); 174digitalWrite(4,HIGH); 175digitalWrite(5,HIGH); 176digitalWrite(6,HIGH); 177digitalWrite(7,HIGH); 178digitalWrite(8,HIGH); 179digitalWrite(9,HIGH); 180digitalWrite(10,HIGH); 181digitalWrite(11,LOW); 182} 183if(x>=90) 184{digitalWrite(2,HIGH); 185digitalWrite(3,HIGH); 186digitalWrite(4,HIGH); 187digitalWrite(5,HIGH); 188digitalWrite(6,HIGH); 189digitalWrite(7,HIGH); 190digitalWrite(8,HIGH); 191digitalWrite(9,HIGH); 192digitalWrite(10,HIGH); 193digitalWrite(11,HIGH); 194}}
untitled
arduino
1#include<Wire.h> 2 3const int MPU_addr=0x68; 4int16_t AcX,AcY,AcZ,Tmp,GyX,GyY,GyZ; 5 6 7int minVal=265; 8int maxVal=402; 9 10double x; 11double y; 12double 13 z; 14 15void setup(){ 16Wire.begin(); 17Wire.beginTransmission(MPU_addr); 18Wire.write(0x6B); 19Wire.write(0); 20Wire.endTransmission(true); 21Serial.begin(9600); 22pinMode(2,OUTPUT); 23pinMode(3,OUTPUT); 24pinMode(4,OUTPUT); 25pinMode(5,OUTPUT); 26pinMode(6,OUTPUT); 27pinMode(7,OUTPUT); 28pinMode(8,OUTPUT); 29pinMode(9,OUTPUT); 30pinMode(10,OUTPUT); 31 32 33} 34void 35 loop(){ 36Wire.beginTransmission(MPU_addr); 37Wire.write(0x3B); 38Wire.endTransmission(false); 39Wire.requestFrom(MPU_addr,14,true); 40AcX=Wire.read()<<8|Wire.read(); 41AcY=Wire.read()<<8|Wire.read(); 42AcZ=Wire.read()<<8|Wire.read(); 43int 44 xAng = map(AcX,minVal,maxVal,-90,90); 45int yAng = map(AcY,minVal,maxVal,-90,90); 46int 47 zAng = map(AcZ,minVal,maxVal,-90,90); 48 49x= RAD_TO_DEG * (atan2(-yAng, -zAng)+PI); 50y= 51 RAD_TO_DEG * (atan2(-xAng, -zAng)+PI); 52z= RAD_TO_DEG * (atan2(-yAng, -xAng)+PI); 53 54 55Serial.print("AngleX= "); 56Serial.println(x); 57 58Serial.print("AngleY= 59 "); 60Serial.println(y); 61 62Serial.print("AngleZ= "); 63Serial.println(z); 64Serial.println("-----------------------------------------"); 65delay(400); 66if(x<=10||x>=1) 67{digitalWrite(2,HIGH); 68digitalWrite(3,LOW); 69digitalWrite(4,LOW); 70digitalWrite(5,LOW); 71digitalWrite(6,LOW); 72digitalWrite(7,LOW); 73digitalWrite(8,LOW); 74digitalWrite(9,LOW); 75digitalWrite(10,LOW); 76digitalWrite(11,LOW); 77} 78 79if(x<=20||x>=11) 80{digitalWrite(2,HIGH); 81digitalWrite(3,HIGH); 82digitalWrite(4,LOW); 83digitalWrite(5,LOW); 84digitalWrite(6,LOW); 85digitalWrite(7,LOW); 86digitalWrite(8,LOW); 87digitalWrite(9,LOW); 88digitalWrite(10,LOW); 89digitalWrite(11,LOW); 90} 91if(x<=30||x>=21) 92{digitalWrite(2,HIGH); 93digitalWrite(3,HIGH); 94digitalWrite(4,HIGH); 95digitalWrite(5,LOW); 96digitalWrite(6,LOW); 97digitalWrite(7,LOW); 98digitalWrite(8,LOW); 99digitalWrite(9,LOW); 100digitalWrite(10,LOW); 101digitalWrite(11,LOW); 102} 103if(x<=40||x>=31) 104{digitalWrite(2,HIGH); 105digitalWrite(3,HIGH); 106digitalWrite(4,HIGH); 107digitalWrite(5,HIGH); 108digitalWrite(6,LOW); 109digitalWrite(7,LOW); 110digitalWrite(8,LOW); 111digitalWrite(9,LOW); 112digitalWrite(10,LOW); 113digitalWrite(11,LOW); 114} 115if(x<=50||x>=41) 116{digitalWrite(2,HIGH); 117digitalWrite(3,HIGH); 118digitalWrite(4,HIGH); 119digitalWrite(5,HIGH); 120digitalWrite(6,HIGH); 121digitalWrite(7,LOW); 122digitalWrite(8,LOW); 123digitalWrite(9,LOW); 124digitalWrite(10,LOW); 125digitalWrite(11,LOW); 126} 127if(x<=60||x>=51) 128{digitalWrite(2,HIGH); 129digitalWrite(3,HIGH); 130digitalWrite(4,HIGH); 131digitalWrite(5,HIGH); 132digitalWrite(6,HIGH); 133digitalWrite(7,HIGH); 134digitalWrite(8,LOW); 135digitalWrite(9,LOW); 136digitalWrite(10,LOW); 137digitalWrite(11,LOW); 138} 139 140if(x<=70||x>=61) 141{digitalWrite(2,HIGH); 142digitalWrite(3,HIGH); 143digitalWrite(4,HIGH); 144digitalWrite(5,HIGH); 145digitalWrite(6,HIGH); 146digitalWrite(7,HIGH); 147digitalWrite(8,HIGH); 148digitalWrite(9,LOW); 149digitalWrite(10,LOW); 150digitalWrite(11,LOW); 151} 152 153if(x<=80||x>=71) 154{digitalWrite(2,HIGH); 155digitalWrite(3,HIGH); 156digitalWrite(4,HIGH); 157digitalWrite(5,HIGH); 158digitalWrite(6,HIGH); 159digitalWrite(7,HIGH); 160digitalWrite(8,HIGH); 161digitalWrite(9,HIGH); 162digitalWrite(10,LOW); 163digitalWrite(11,LOW); 164} 165 166if(x<=90||x>=81) 167{digitalWrite(2,HIGH); 168digitalWrite(3,HIGH); 169digitalWrite(4,HIGH); 170digitalWrite(5,HIGH); 171digitalWrite(6,HIGH); 172digitalWrite(7,HIGH); 173digitalWrite(8,HIGH); 174digitalWrite(9,HIGH); 175digitalWrite(10,HIGH); 176digitalWrite(11,LOW); 177} 178 179if(x<=90||x>=81) 180{digitalWrite(2,HIGH); 181digitalWrite(3,HIGH); 182digitalWrite(4,HIGH); 183digitalWrite(5,HIGH); 184digitalWrite(6,HIGH); 185digitalWrite(7,HIGH); 186digitalWrite(8,HIGH); 187digitalWrite(9,HIGH); 188digitalWrite(10,HIGH); 189digitalWrite(11,LOW); 190} 191if(x>=90) 192{digitalWrite(2,HIGH); 193digitalWrite(3,HIGH); 194digitalWrite(4,HIGH); 195digitalWrite(5,HIGH); 196digitalWrite(6,HIGH); 197digitalWrite(7,HIGH); 198digitalWrite(8,HIGH); 199digitalWrite(9,HIGH); 200digitalWrite(10,HIGH); 201digitalWrite(11,HIGH); 202}}
Downloadable files
untitled
untitled

untitled
untitled

Comments
Only logged in users can leave comments