Başladık bakalım

İlk denemeler başarılı.
İki tane potansiyometre alıp adruino uno nun analog girişlerine bağladım. Bunlar temsili sensörlerim olacak. 🙂 Bunlardan gelen verilere göre 4 boyutlu haritalarımdan uygun değeri seçerek PC nin comport’una gönderiyorum. Evet daha yolun başında bile sayılmam belki ama yıllar önce öğrencilik yıllarımda öğrendiğim C’yi yeniden keşfetmem gerektiği hesaba katılınca aslında fena da yol almadım hani. 🙂

Neyse Sketch ime kısaca göz gezdirirsek; Öncelikle haritaları tanımlamakladım.

int fuel_Map[4][10][12] = {
0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11,
1, 10, 10, 12, 12, 12, 12, 13, 12, 12, 10, 0,
2, 10, 11, 20, 13, 15, 15, 20, 25, 15, 10, 0,
3, 10, 12, 14, 18, 18, 18, 30, 25, 15, 10, 0,
4, 10, 15, 18, 20, 22, 35, 30, 25, 15, 10, 0,
5, 10, 22, 20, 22, 25, 35, 30, 25, 15, 10, 0,
6, 10, 20, 22, 25, 28, 35, 30, 25, 15, 10, 0,
7, 10, 22, 25, 30, 30, 35, 30, 25, 15, 10, 0,
8, 10, 15, 20, 33, 35, 35, 32, 25, 15, 10, 0,
9, 10, 15, 25, 35, 40, 40, 35, 25, 15, 10, 0,
0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11,
1, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25,
2, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25,
3, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25,
4, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25,
5, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25,
6, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25,
7, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25,
8, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25,
9, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25,
0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11,
1, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25,
2, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25,
3, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25,
4, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25,
5, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25,
6, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25,
7, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25,
8, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25,
9, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25,
0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11,
1, 147, 147, 147, 147, 147, 147, 147, 140, 135, 130, 0,
2, 147, 147, 147, 147, 147, 147, 147, 140, 135, 130, 0,
3, 147, 147, 147, 147, 147, 147, 147, 140, 135, 130, 0,
4, 147, 147, 147, 147, 147, 147, 147, 140, 135, 130, 0,
5, 147, 147, 147, 147, 147, 147, 147, 140, 135, 130, 0,
6, 147, 147, 147, 147, 147, 147, 147, 140, 135, 130, 0,
7, 147, 147, 147, 147, 147, 147, 147, 140, 135, 130, 0,
8, 147, 147, 147, 147, 147, 147, 147, 140, 135, 130, 0,
9, 147, 147, 147, 147, 147, 147, 147, 140, 135, 130, 0};
Buna göre 4 ayrı yüzey, 10 satır ve 12 sütundan oluşan 4 boyutlu harita hazırlanmış oldu. Değerler tamamen afaki tabi.

Daha sonra analog portlardan gelen veriyi okumaya geldi sıra.

int fuel_Value = 0;
int MapSensorVal = analogRead(A0);
int RpmSensorVal = analogRead(A1);
// int TpsSensorVal = analogRead(A2); Üçüncü potansiyometreyi alana kadar buna sabit değer atamak durumunda kaldım. 🙂
int TpsSensorVal = 0 ;

Malum 8 bit ADC kullanılan portlarda 0-1023 arası değer çevrimi yapılabiliyor. Yani sizin porta gönderdiğiniz 5 ya da 3.3V u 8 bit data olarak çevirdiğimiz için öncelikle bunu scale etmek gerekiyordu. Bunun için map fonksiyonunu kullandım ki faydalı bir eser zira ara değerlerde kendi yuvarlama yaptığı için çok fazla gereksiz veri girişine gerek kalmıyor.

RpmSensorVal = map(RpmSensorVal, 0, 1023, 0, 11);
MapSensorVal = map(MapSensorVal, 0, 1023, 0, 9);
TpsSensorVal = map(TpsSensorVal, 0, 1023, 0, 4);

 

Hadi şimdi sensörlerden gelen verilere göre haritamızdan uygun değeri çekip com
portuna gönderelim. Veri sıralaması [yüzey][satır][sütun] olacak şekilde

fuel_Value = fuel_Map[TpsSensorVal][MapSensorVal][RpmSensorVal];
Serial.print(“MAP value : “);
Serial.println(MapSensorVal);Serial.print(“RPM value : “);
Serial.println(RpmSensorVal);

Serial.println(” “);
Serial.print(“PWM value : “);
Serial.println(fuel_Value);
Serial.println(” “);
Serial.println(“—————– “);

ComPort görüntüsü şöyle bir şey oldu.

 

map1

Reklamlar

Bir Cevap Yazın

Aşağıya bilgilerinizi girin veya oturum açmak için bir simgeye tıklayın:

WordPress.com Logosu

WordPress.com hesabınızı kullanarak yorum yapıyorsunuz. Çıkış  Yap / Değiştir )

Twitter resmi

Twitter hesabınızı kullanarak yorum yapıyorsunuz. Çıkış  Yap / Değiştir )

Facebook fotoğrafı

Facebook hesabınızı kullanarak yorum yapıyorsunuz. Çıkış  Yap / Değiştir )

Google+ fotoğrafı

Google+ hesabınızı kullanarak yorum yapıyorsunuz. Çıkış  Yap / Değiştir )

Connecting to %s