Sense Shield ile Arduino Uygulamaları

senseshield1

Sense Shield ile Arduino Uygulamaları

senseshield2

Bu yazımda SenseShield hakkında birkaç bilgi vereceğim. SenseShield’in üzerinde 1 tane buzzer, 1 tane HC-SR04 Ultrasonik Sensör, 1 tane Buton, 1 tane Cıva Sensörü, 1 tane Reed Röle, 1 tane Led, 1 tane MPU6050 6 Eksen İvme ve Gyro Sensörü, 1 tane LDR ve 1 tane LM35 Sıcaklık sensörü bulunmaktadır. Led arduinonun dijital 13 pinine, buzzer arduinonun dijital 12 pinine, buton-reed-civa arduinonun dijital 9 pinine, ultrasonik sensörünün Trig pini arduinonun dijital 10 pinine, echo pini arduinonun dijital 11 pinine, LM35 arduinonun analog 1 pinine, LDR arduinonun analog 2 pinine ve MPU6050 SDA analog 4 – SCL analog 5 pinlerine bağlıdır. Bu shield sayasinde isterseniz MPU6050 ile kendini dengeleyen robot, ultrasonik sensör ile basit engelden kaçan robot yapabilirsiniz.

 

senseshield11

Ultrasonik Sensör

senseshield10

Buton

senseshield8

LDR

senseshield7

LM35

 

 

 

 

 

 

 


senseshield6

MPU-6050

senseshield5

Buzzer

senseshield3

Led

 

senseshield9

Reed Röle

 

 

 

 

 


senseshield4

Cıva Sensörü

 

Buton Uygulaması


//Buton Uygulaması//
#define Buzzer 12
#define Button 9
void setup() {
pinMode(Led,OUTPUT);
pinMode(Buzzer,OUTPUT);
pinMode(Button,INPUT);
Serial.begin(9600);
}

void loop() {
if(digitalRead(Button) == 0)
{
tone(Buzzer,200);
}
else
{
noTone(Buzzer);
}
}


Bu uygulamada butona bastığımızda buzzer da ayarladığımız frekansta ses çıkıyor.


Cıva Sensör Uygulaması


//Civa Sensör Uygulaması//
#define Led 13
#define Mercury 9
void setup() {
pinMode(Led,OUTPUT);
pinMode(Buzzer,OUTPUT);
pinMode(Mercury,INPUT);
Serial.begin(9600);
}

void loop() {
if(digitalRead(Mercury) == 0)
{
digitalWrite(Led,HIGH);
}
else
{
digitalWrite(Led,LOW);
}
}

Bu uygulamada Civa sensörü kısa devre olduğunda Led yanmaktadır.


Reed Röle Uygulaması


//Reed Röle Uygulaması//
#define Led 13
#define Buzzer 12
#define Reed 9

void setup() {
pinMode(Led,OUTPUT);
pinMode(Buzzer,OUTPUT);
pinMode(Reed,INPUT);
Serial.begin(9600);
}

void loop() {
if(digitalRead(Reed) == 0)
{
digitalWrite(Led,HIGH);
tone(Buzzer,200);
}
else
{
digitalWrite(Led,LOW);
noTone(Buzzer);
}
}


Bu uygulamada Reed Röle aktif olduğunda Led yanmaktadır ve Buzzerdan ses çıkmaktadır.


Ultrasonik Sensör (HC-SR04) Uygulaması


//HC-SR04 Uygulaması//
#define Led 13
#define Buzzer 12
#define Trig 10
#define Echo 11

void setup() {
pinMode(Led,OUTPUT);
pinMode(Buzzer,OUTPUT);
pinMode(Trig,OUTPUT);
pinMode(Echo,INPUT);
Serial.begin(9600);
}

void loop() {
long sure, mesafe;
digitalWrite(Trig, LOW);
delayMicroseconds(2);
digitalWrite(Trig, HIGH);
delayMicroseconds(10);
digitalWrite(Trig, LOW);
sure = pulseIn(Echo, HIGH);
mesafe = (sure/2) / 29.1;
Serial.println(mesafe);
if(mesafe <= 20)
{
tone(Buzzer,100);
digitalWrite(Led,HIGH);
delay(200);
noTone(Buzzer);
digitalWrite(Led,LOW);
delay(200);
}
else if(mesafe <= 40) { digitalWrite(Led,HIGH); noTone(Buzzer); } else { digitalWrite(Led,LOW); noTone(Buzzer); } } 

Bu uygulamada Ultrasonik Sensöründen gelen bilgi 40 – 20 CM arasında ise Led yanmaktadır. Mesafe 20 CM den küçük ise 200 ms de bir Led yanmaktadır ve buzer dan ses çıkmaktadır. Mesafe 40 CM den büyük ise Led sönük ve buzzerdan da ses çıkmamaktadır.


LDR Uygulaması



//LDR Uygulaması//

#define LDR A2

#define Led 13

void setup()

{

Serial.begin(9600); pinMode(Led,OUTPUT);

}

void loop()

{

Serial.println(analogRead(LDR));

if(analogRead(LDR) > 800)
{
digitalWrite(Led,HIGH);
}
else
{
digitalWrite(Led,LOW);
}
}


Bu uygulamada LDR ye ışık geldiğinde Led sönük, ışık kesildiğinde Led yanmaktadır.


LM35 Uygulması


//LM35 Uygulması//
#define LM35 A1
#define Buzzer 12
#define Led 13

float sicaklik; //Analog değeri dönüştüreceğimiz sıcaklık
float analoggerilim; //Ölçeceğimiz analog değer

void setup () {
Serial.begin(9600); //Seri haberleşme,Sıcaklığı ekranda görücez
pinMode(Buzzer,OUTPUT);
pinMode(Led,OUTPUT);
}

void loop () {
analoggerilim = analogRead(LM35); //A1'den değeri ölç
analoggerilim = (analoggerilim/1023)*5000;//değeri mV'a dönüştr
sicaklik = analoggerilim /10,0; // mV'u sicakliğa dönüştür

Serial.print("Sicaklik Degeri: ");
Serial.print (sicaklik);
Serial.println (" derece");

if(sicaklik > 40)
{
tone(Buzzer,200);
digitalWrite(Led,HIGH);
delay(200);
noTone(Buzzer);
digitalWrite(Led,LOW);
delay(200);
}
else if(sicaklik >30)
{
digitalWrite(Led,HIGH);
delay(200);
}
else if(sicaklik <= 30)
{
noTone(Buzzer);
digitalWrite(Led,LOW);
}
}


Bu uygulamada Sıcaklık 40 Dereceden büyük ise 200ms de bir Led yanmaktadır ve Buzerdan da ses çıkmaktadır. Sıcaklık 40 – 30 derece arasında ise Led yanmaktadır. Sıcaklık 30 Derecenin altına düştüğünde Led sönüktür ve buzzer dan ses çıkmamaktadır.


MPU6050 Uygulaması


//MPU6050 Uygulaması//
#include
const int MPU_addr=0x68; // I2C address of the MPU-6050
int16_t AcX,AcY,AcZ,Tmp,GyX,GyY,GyZ;
void setup(){
Wire.begin();
Wire.beginTransmission(MPU_addr);
Wire.write(0x6B); // PWR_MGMT_1 register
Wire.write(0); // set to zero (wakes up the MPU-6050)
Wire.endTransmission(true);
Serial.begin(9600);
}
void loop(){
Wire.beginTransmission(MPU_addr);
Wire.write(0x3B); // starting with register 0x3B (ACCEL_XOUT_H)
Wire.endTransmission(false);
Wire.requestFrom(MPU_addr,14,true); // request a total of 14 registers
AcX=Wire.read()<<8|Wire.read(); // 0x3B (ACCEL_XOUT_H) &amp; 0x3C (ACCEL_XOUT_L)
AcY=Wire.read()<<8|Wire.read(); // 0x3D (ACCEL_YOUT_H) &amp; 0x3E (ACCEL_YOUT_L)
AcZ=Wire.read()<<8|Wire.read(); // 0x3F (ACCEL_ZOUT_H) &amp; 0x40 (ACCEL_ZOUT_L)
Tmp=Wire.read()<<8|Wire.read(); // 0x41 (TEMP_OUT_H) &amp; 0x42 (TEMP_OUT_L)
GyX=Wire.read()<<8|Wire.read(); // 0x43 (GYRO_XOUT_H) &amp; 0x44 (GYRO_XOUT_L)
GyY=Wire.read()<<8|Wire.read(); // 0x45 (GYRO_YOUT_H) &amp; 0x46 (GYRO_YOUT_L)
GyZ=Wire.read()<<8|Wire.read(); // 0x47 (GYRO_ZOUT_H) &amp; 0x48 (GYRO_ZOUT_L)
Serial.print("AcX = "); Serial.print(AcX);
Serial.print(" | AcY = "); Serial.print(AcY);
Serial.print(" | AcZ = "); Serial.print(AcZ);
Serial.print(" | Tmp = "); Serial.print(Tmp/340.00+36.53); //equation for temperature in degrees C from datasheet
Serial.print(" | GyX = "); Serial.print(GyX);
Serial.print(" | GyY = "); Serial.print(GyY);
Serial.print(" | GyZ = "); Serial.println(GyZ);
delay(333);
}


Bu uygulamada MPU6050 Sensöründen gelen bilgileri Serial Port Ekranında görebiliriz.

0 Yorum

Kimliğiniz ile giriş yapın

veya    

Ayrıntılarınızı unuttunuz mu?

Create Account