Notice: Function _load_textdomain_just_in_time was called incorrectly. Translation loading for the jetpack domain was triggered too early. This is usually an indicator for some code in the plugin or theme running too early. Translations should be loaded at the init action or later. Please see Debugging in WordPress for more information. (This message was added in version 6.7.0.) in /home/haydikod/robotkursu.com/wp-includes/functions.php on line 6114
DERS 40 : LM35 sensör kullanımı – Robot Kursu

DERS 40 : LM35 sensör kullanımı

Robot kursu sensör modülü üzerinde bulunan LM35 sıcaklık sensörü kullanımına ait bir örnektir. Program  satırların da gerekli açıklamalar yapılmıştır.
Arduino sensör modülümüz ile LDR, NTC, PTC , LM35 gibi sensörler header üzerinden takılıp kullanılabilmektedir. 4 adet 7 segment display de tarama yöntemini öğrenmek ve sensörlerden gelen bilgileri göstermek mümkündür. LM35 sensörü ile ölçülen ısı displaylerde gösterilebilecektir. Böylelikle analog işlemlerin öğrenilmesi daha kolay olacaktır.

Arduino kodu için tıklayınız.

 

 

Her rakam fonksiyon olarak tanımlanmıştır. Göstermek istediğimiz rakamı fonksiyon olarak çağırıyoruz.  Displayler tarama yöntemi ile çalışmaktadır.

/*
*25.03.2016
www.robotkursu.com

*/
int lm35=A3; // ısı sensörü

int buton1=12;
int buton2=11;
int buton3=13;
//— segmentler—
int a=4;
int b=6;
int c=A1;
int d=8;
int e=7;
int f=5;
int g=A2;
int h=A0;
//——–
int disp1=2;
int disp2=3;
int disp3=A5;
int disp4=A4;
//——–
int t=5;
float sicaklik; //Analog değeri dönüştüreceğimiz sıcaklık
float olculendeger; //Ölçeceğimiz analog değer

void setup() {
pinMode(a,OUTPUT); pinMode(b,OUTPUT);pinMode(c,OUTPUT);
pinMode(d,OUTPUT); pinMode(e,OUTPUT);pinMode(f,OUTPUT);
pinMode(g,OUTPUT); pinMode(h,OUTPUT);
pinMode(disp1,OUTPUT);pinMode(disp2,OUTPUT);
pinMode(disp3,OUTPUT);pinMode(disp4,OUTPUT);
Serial.begin(9600); // serial monitörden görebilmek için
pinMode(lm35,INPUT); // sensörden gelen veri
pinMode(9,OUTPUT);// lm35 in + enerji ucu
}

void loop() {
digitalWrite(9,HIGH);// lm35 aktif
olculendeger = analogRead(lm35); //A3’ten değeri alacak
olculendeger = (olculendeger/1023)*5000;//değeri mV’a dönüştürecek
sicaklik = olculendeger /10,0; // mV’u sicakliğa dönüştürecek

int x=sicaklik*100;
int onlar=x/1000; // onlar basamağı bulundu
int birler=sicaklik-(onlar*10); // birler basamağı bulundu
int virguldensonrasi=x%100; // ondalık kısmı elde ettik
int virgulbirler=virguldensonrasi/10;
// int virgulonlar=virguldensonrasi%10;
/*
Serial.print(“Sicaklik : “);
Serial.print (sicaklik);
Serial.println (” derece”);

Serial.println ( onlar );
Serial.println ( birler );
Serial.println ( virgulbirler );
Serial.println ( virgulonlar );
delay (1000); //1sn aralıklarla yapacak
*/
for(int i=0;i<50;i++){ // bir kere ölçüp 50 defa gösteriyoruz yoksa değerler oynadıkça ekran titriyor
switch (onlar) {
case 0: sifir(); break;
case 1: bir(); break;
case 2: iki(); break;
case 3: uc(); break;
case 4: dort(); break;
case 5: bes(); break;
case 6: alti(); break;
case 7: yedi(); break;
case 8: sekiz(); break;
case 9: dokuz(); break;
}

digitalWrite(disp1,HIGH);// 1. display aktif
delay(t);
digitalWrite(disp1,LOW);// 1. display pasif
//———————————————–
switch (birler) {
case 0: sifir(); break;
case 1: bir(); break;
case 2: iki(); break;
case 3: uc(); break;
case 4: dort(); break;
case 5: bes(); break;
case 6: alti(); break;
case 7: yedi(); break;
case 8: sekiz(); break;
case 9: dokuz(); break;
}
digitalWrite(h,HIGH);
digitalWrite(disp2,HIGH);// 2. display aktif
delay(t);
digitalWrite(disp2,LOW);// 2. display pasif
//———————————————–
switch (virgulbirler) {
case 0: sifir(); break;
case 1: bir(); break;
case 2: iki(); break;
case 3: uc(); break;
case 4: dort(); break;
case 5: bes(); break;
case 6: alti(); break;
case 7: yedi(); break;
case 8: sekiz(); break;
case 9: dokuz(); break;
}
digitalWrite(disp3,HIGH);// 3. display aktif
delay(t);
digitalWrite(disp3,LOW);// 3. display pasif
//———————————————–
digitalWrite(a,HIGH);
digitalWrite(b,HIGH);
digitalWrite(c,LOW);
digitalWrite(d,LOW);
digitalWrite(e,LOW);
digitalWrite(f,HIGH);
digitalWrite(g,HIGH);
digitalWrite(h,LOW);

digitalWrite(disp4,HIGH);// 4. display aktif
delay(t);
digitalWrite(disp4,LOW);// 4. display pasif
//———————————————–
}

}
/////////////////////////////////////////////////////////
////////////////////////////////////////////////////////
void sifir()
{
digitalWrite(a,HIGH);
digitalWrite(b,HIGH);
digitalWrite(c,HIGH);
digitalWrite(d,HIGH);
digitalWrite(e,HIGH);
digitalWrite(f,HIGH);
digitalWrite(g,LOW);
digitalWrite(h,LOW);
}
void bir()
{
digitalWrite(a,LOW);
digitalWrite(b,HIGH);
digitalWrite(c,HIGH);
digitalWrite(d,LOW);
digitalWrite(e,LOW);
digitalWrite(f,LOW);
digitalWrite(g,LOW);
digitalWrite(h,LOW);
}
void iki()
{
digitalWrite(a,HIGH);
digitalWrite(b,HIGH);
digitalWrite(c,LOW);
digitalWrite(d,HIGH);
digitalWrite(e,HIGH);
digitalWrite(f,LOW);
digitalWrite(g,HIGH);
digitalWrite(h,LOW);
}
void uc()
{
digitalWrite(a,HIGH);
digitalWrite(b,HIGH);
digitalWrite(c,HIGH);
digitalWrite(d,HIGH);
digitalWrite(e,LOW);
digitalWrite(f,LOW);
digitalWrite(g,HIGH);
digitalWrite(h,LOW);
}
void dort()
{
digitalWrite(a,LOW);
digitalWrite(b,HIGH);
digitalWrite(c,HIGH);
digitalWrite(d,LOW);
digitalWrite(e,LOW);
digitalWrite(f,HIGH);
digitalWrite(g,HIGH);
digitalWrite(h,LOW);
}
void bes()
{
digitalWrite(a,HIGH);
digitalWrite(b,LOW);
digitalWrite(c,HIGH);
digitalWrite(d,HIGH);
digitalWrite(e,LOW);
digitalWrite(f,HIGH);
digitalWrite(g,HIGH);
digitalWrite(h,LOW);
}
void alti()
{
digitalWrite(a,HIGH);
digitalWrite(b,LOW);
digitalWrite(c,HIGH);
digitalWrite(d,HIGH);
digitalWrite(e,HIGH);
digitalWrite(f,HIGH);
digitalWrite(g,HIGH);
}
void yedi()
{
digitalWrite(a,HIGH);
digitalWrite(b,HIGH);
digitalWrite(c,HIGH);
digitalWrite(d,LOW);
digitalWrite(e,LOW);
digitalWrite(f,LOW);
digitalWrite(g,LOW);
digitalWrite(h,LOW);
}
void sekiz()
{
digitalWrite(a,HIGH);
digitalWrite(b,HIGH);
digitalWrite(c,HIGH);
digitalWrite(d,HIGH);
digitalWrite(e,HIGH);
digitalWrite(f,HIGH);
digitalWrite(g,HIGH);
digitalWrite(h,LOW);
}
void dokuz()
{
digitalWrite(a,HIGH);
digitalWrite(b,HIGH);
digitalWrite(c,HIGH);
digitalWrite(d,LOW);
digitalWrite(e,LOW);
digitalWrite(f,HIGH);
digitalWrite(g,HIGH);
digitalWrite(h,LOW);
}

 

Related Posts

LEDyak app inventor uygulaması

Bu uygulama ile android telefonunuzdan başlangıç modülü üzerindeki LED leri yakıp söndürebilirsiniz. arduino kodu için Read More

Arduino Scratch modülü 5: 7 Segment display kullanımı

Arduino scratch modülümüz ile 7 segment display kullanımına örnek dersimiz. Modül üzerindeki 7 segment displayRead More

Arduino Scratch modülü 4: Led animasyon

İlgili

Comments are Closed