Fiat Linea Arduino ile Cam Kaldırma ve İndirme Nasıl Yapılır ?
Herkese merhaba arkadaşlar 4 cam otomatik fiat linea aracımızda yepyeni bir uygulama ile arduino ve aracın orjinal M190 cam beynini kullanarak cam kaldırma ve indirme modülü yaptık elektronik bilgisi altyapısı olan ben yaparım diyen arkadaşlar için a dan z ye nasıl yapıldığını aktarmaya çalıştım.
Dileyen arkadaşlar Bize Ulaşın bağlantısını kullanarak veya Telegram adresimizden montaja hazır cam modülü talep edebilirler.
Montaja Hazır v2.0 Cam Modülü Uygulama Videosu
Montaja Hazır v2.0 Cam Modülü Kart Örneği
Cam Modülü Uygulamasında Kullanılan Malzemeler
1 ADET ARDUİNO NANO
5 ADET 2 PİN 5.08mm KLEMENS
4 ADET 220Ω 1/4W DİRENÇ
4 ADET 560Ω 1/4W DİRENÇ
8 ADET 1K 1/4W 1000Ω DİRENÇ
8 ADET BC548 NPN TRANSİSTÖR (BC548 veya BC547 farketmez, transistörün NPN olması önemlidir.)
1 ADET 7809 9V VOLTAJ REGÜLATÖRÜ (ARDUİNO BESLEME İÇİN KULLANILACAK)
3 ADET 7805 5V VOLTAJ REGÜLATÖRÜ
7 ADET 1N4007 DİYOT
1 ADET 100uf KONDANSATÖR
1 ADET 100nf KONDANSATÖR
1 ADET CAM SİGORTA YUVASI
1 ADET 1A CAM SİGORTASI
Fiat Linea araçlar camları kapatıp açmak için m190 isminde cam beynini kullanmaktadır. Hazırlamış olduğumuz arduino cam modülü mantık olarak bizim yerimize aracımızda bulunan orjinal cam butonlarını tetikleyecek olup cam motorlarının zorlanması ve yanması gibi herhangi bir risk bulunmamaktadır.
Aracımızda bulunan M190 cam beynine ulaşmak için sökülmesi gereken vidalar aşağıdaki resimlerde belirtilmiş olup konum olarak sol şoför kapısına giden kablolarının üstünde yer alır.
M190 cam beynindeki cam kontrol kabloları gnd (şase) tetiklemeli olup gnd kapılarda bulunan cam kontrol düğmeleri ile dirençler vasıtası ile beyine iletilmektedir beyin gelen direnç koduna göre kaldırma ve indirme işlemi gerçekleştirmektedir.
ORJİNAL CAM BUTONLARI KALDIRMA VE İNDİRME DİRENÇ DEĞERLERİ
CAM KALDIRMA İŞLEMİ : 220Ω
CAM İNDİRME İŞLEMİ : 220Ω+560Ω = 780Ω (560Ω ile 1K arası dirençler indirme işlemi yapacaktır.)
M190 CAM BEYİNİ ORTAK CAM KONTROL RENK KODLARI
KAHVERENGİ SOKETTE
CAM BUTON ORTAK GND : SİHAH-GRİ – ( GND ŞASE DE KULLANİLABİLİR )
SOL ÖN CAM : YEŞİL-BEYAZ
SAĞ ÖN CAM : YEŞİL-SİYAH
YEŞİL SOKETTE
SOL ARKA CAM : GRİ-SİYAH İNCE ÇİZGİLİ
SAĞ ARKA CAM : GRİ-YEŞİL İNCE ÇİZGİLİ
Arduino ile tasarladığınız modülü beslemek için gerekli olan daimi +12v ve gnd yi m190 beyni arkasında kahverengi soketteki kırmızı-siyah +12v siyah – (gnd) olarak bulabilirsiniz.
Linea orjinal 4 cam m190 rölesinin kahverengi soketteki mavi-beyaz renk kodlu 0.50mm kablo ecu kontak girişi olup kontak açıldığında cam beynini aktif etmektedir. Araç kapılarımız kilitli olduğunda veya araç kontağı kapalı iken ECU bir süre sonra m190 cam beyni enerjisini kesmektedir. Bu durumda M190 cam beynini 1dk süre ile uyandırarak çalıştırmak için mavi beyaz kablo kesilerek arasına diyot atılacaktır. Bu koruma diyotu mevcut mavi-beyaz kontak kablomuza tersten enerji gitmesi gibi riskleri ortadan kaldıracaktır. Diyotun m190 cam beyni tarafına renkleri beyaz-siyah kapı kilitleme tetiği ve turuncu-yeşil kapı açma tetiği olan anlık 0.50ms 12v + verilecektir. Bu işlem cam modülünün 1 dakika boyunca enerjili aktif olmasını sağlayacaktır.
Merkezi kilit kapı kilit açma ve kapatma tetik kabloları olan beyaz-siyah ve turuncu-yeşil kablolarada koruma diyotu atılacaktır. Bu diyotlar ecu ya ve kapı kilit tetik kablolarına tersten enerji gitmesini engelleyecektir.
Merkezi kilit tetik kabloları merkezi kilit kapı kapatma +12v tetik kablosu ve kapı açma +12v tetik kablosu sol şoför kapısına giden kablo demetinın içinde olup kapatma beyaz-siyah açma ise turuncu-yeşil renktedir.
Tasarlamış olduğunuz cam modülünün çalışma prensibini anlatmak gerekirse camlarımız açıkken araç anahtarından kapı kapatma düğmesine bastığınızda merkezi kilit kapatma beyaz-siyah renkteki kablodan anlık olarak 0.50ms +12v m190 cam beyninin kahverengi soketteki mavi beyaz renk kodlu kabloya iletilip cam beyninin 1 dk süre ile aktif olmasını sağlar ve aynı anda beyaz siyah kablodan iletilen anlık +12v arduino modülünüzün 12 nolu digital pinine 7805 regülatör aracılığı ile +5v olarak iletilir tetiği alan modül 1 saniyelik bekleme süresinden sonra 6,7,8,9 numaralı digital pinler 4 sn boyunca +5v çıkış verip ilgili npn transistörleri tetikleyip ilgili gnd şase yi 220Ω dirençler üzerinden m190 cam beynine iletir ve 4 cam aynı anda kapanır.
Araç kumandasından kapı açma tuşuna ilk basmanızda normal olarak kapılarınız açılacak ve 5 sn içinde kumandanızdan tekrar kapı açma sinyali gönderirseniz merkezi kilit açma turuncu-yeşil renkteki kablodan anlık olarak +12v m190 cam beyninin kahverengi soketteki mavi beyaz renk kodlu kabloya iletilip cam beyninin 1 dk süre ile aktif olmasını sağlar ve aynı anda turuncu-yeşil kablodan iletilen anlık +12v arduino modülünüzün 11 nolu digital pinine 7805 regülatör aracılığı ile +5v olarak iletilir tetiği alan modül 1 saniyelik bekleme süresinden sonra 2,3,4,5 numaralı digital pinler 4 sn boyunca +5v çikiş verip ilgili npn transistörleri tetikleyip ilgili gnd şase yi 560Ω dirençler üzerinden m190 cam beynine iletir ve 4 cam aynı anda açılır. Cam kontrol modülünün araç kontağı açıkken çalışmaması için kontak koruması mevcut olup kontak korumasiıiçin gerekli +12v m190 kahverengi soketteki mavi-beyaz kablodan (Koruma için koymuş olduğunuz diyottan önce) veya sigorta panelinden kontak açıldığında +12v veren bir çıkış bulup temin edebilirsiniz temin ettiğiniz bu uç arduino modülünün 10 nolu digital pinine 7805 aracılığı ile +5v olarak iletilir.
ARDUİNO YAZILIM KODLARIMIZ
ÇİFT KAPATMA TETİĞİ CAM KAPATIR – ÇİFT AÇMA TETİĞİ CAM AÇAR
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 |
//--------------------------------------------------------------------- //--------------------------------------------------------------------- //---Son Güncelleme 13.06.2020 yazılım kaynaklı hatalar giderildi.----- //---Güvenlik nedeniyle tek kapı kapatma tetiği ile cam kapatma iptal edilmiş olup çift tetik olacak şekilde güncellenmiştir----- //---Gereksiz delay bekleme suresi kaldırıldı----- //--------------------------------------------------------------------- #define Cam1Up 9 // Cam 1 kaldırma digital pin. #define Cam1Down 2 // Cam 1 indirme digital pin. #define Cam2Up 8 // Cam 2 kaldırma digital pin. #define Cam2Down 3 // Cam 2 indirme digital pin. #define Cam3Up 7 // Cam 3 kaldırma digital pin. #define Cam3Down 4 // Cam 3 indirme digital pin. #define Cam4Up 6 // Cam 4 kaldırma digital pin. #define Cam4Down 5 // Cam 4 indirme digital pin. #define kontak 10 // Kontak koruma digital pin. #define unlocktetik 11 // Kapı açma tetik digital pin. #define locktetik 12 // Kapı kapatma tetik digital pin. int lt_durum; int ult_durum; int k_durum; int strdurum; int sayac = 0; int locksayac = 0; unsigned long lastTime = 0; unsigned long locklastTime = 0; long onTime = 10000; long stronTime = 2000; long strlockTime = 1000; long strUpDownTime = 4000; // Cam indirme ve kaldırma bekleme süresi void setup() { pinMode(Cam1Up, OUTPUT); pinMode(Cam2Up, OUTPUT); pinMode(Cam3Up, OUTPUT); pinMode(Cam4Up, OUTPUT); pinMode(Cam1Down, OUTPUT); pinMode(Cam2Down, OUTPUT); pinMode(Cam3Down, OUTPUT); pinMode(Cam4Down, OUTPUT); pinMode(kontak, INPUT); pinMode(locktetik, INPUT); pinMode(unlocktetik, INPUT); Serial.begin(9600); } void loop() { lt_durum = digitalRead(locktetik); ult_durum = digitalRead(unlocktetik); k_durum = digitalRead(kontak); Serial.print("Lock Tetik: "); Serial.println(lt_durum); Serial.print("Unlock Tetik: "); Serial.println(ult_durum); Serial.print("Kontak Durum: "); Serial.println(k_durum); if (k_durum == LOW && lt_durum == HIGH) { while (digitalRead(locktetik)); if (locksayac == 0) { locklastTime = millis(); } locksayac++; delay(10); } if (locksayac == 2 && (millis() - locklastTime) <= strlockTime) { strdurum = false; locksayac = 1; locklastTime = millis(); } else { strdurum = true; } if (strdurum == true) { if (locksayac == 2 && (millis() - locklastTime) <= onTime) { digitalWrite(Cam1Up, HIGH); digitalWrite(Cam2Up, HIGH); digitalWrite(Cam3Up, HIGH); digitalWrite(Cam4Up, HIGH); delay(strUpDownTime); digitalWrite(Cam1Up, LOW); digitalWrite(Cam2Up, LOW); digitalWrite(Cam3Up, LOW); digitalWrite(Cam4Up, LOW); locksayac = 0; locklastTime = millis(); } } if (locksayac == 2 && (millis() - locklastTime) > onTime) { locksayac = 1; locklastTime = millis(); } if (k_durum == LOW && ult_durum == HIGH) { while (digitalRead(unlocktetik)); if (sayac == 0) { lastTime = millis(); } sayac++; delay(10); } if (sayac == 2 && (millis() - lastTime) <= stronTime) { strdurum = false; sayac = 1; lastTime = millis(); } else { strdurum = true; } if (strdurum == true) { if (sayac == 2 && (millis() - lastTime) <= onTime) { digitalWrite(Cam1Down, HIGH); digitalWrite(Cam2Down, HIGH); digitalWrite(Cam3Down, HIGH); digitalWrite(Cam4Down, HIGH); delay(strUpDownTime); digitalWrite(Cam1Down, LOW); digitalWrite(Cam2Down, LOW); digitalWrite(Cam3Down, LOW); digitalWrite(Cam4Down, LOW); sayac = 0; lastTime = millis(); } } if (sayac == 2 && (millis() - lastTime) > onTime) { sayac = 1; lastTime = millis(); } } //--------------------------------------------------------------------- //--------------------------------------------------------------------- |
Benim gibi aracında çift kapı açma tetiği ile bagaj kapağı açma modülü kullanan arkadaşlar için arduino kodlarımız aşağıdaki gibi olup çalışma prensibi 5 saniye içinde 2. kapı kapatma tetiği ile açık olan camlar aynı anda kapanacak, ilk kapı açma tetiği ile kapılar açılacak eğer 2 saniye içinde tekrar kapı açma tetiği gönderirseniz bagaj kapağınız açılacatır. Bagaj kapağı etkilenmeden camlarınızın açılması için ilk kapı açma tetiği ile ikinci kapı açma tetiği arasında 3sn olmak zorundadır.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 |
//--------------------------------------------------------------------- //--------------------------------------------------------------------- //---Son Güncelleme 13.06.2020 yazılım kaynaklı hatalar giderildi.----- //---Güvenlik nedeniyle tek kapı kapatma tetiği ile cam kapatma iptal edilmiş olup çift tetik olacak şekilde güncellenmiştir----- //---Gereksiz delay bekleme suresi kaldırıldı----- //--------------------------------------------------------------------- #define Cam1Up 9 // Cam 1 kaldırma digital pin. #define Cam1Down 2 // Cam 1 indirme digital pin. #define Cam2Up 8 // Cam 2 kaldırma digital pin. #define Cam2Down 3 // Cam 2 indirme digital pin. #define Cam3Up 7 // Cam 3 kaldırma digital pin. #define Cam3Down 4 // Cam 3 indirme digital pin. #define Cam4Up 6 // Cam 4 kaldırma digital pin. #define Cam4Down 5 // Cam 4 indirme digital pin. #define kontak 10 // Kontak koruma digital pin. #define unlocktetik 11 // Kapı açma tetik digital pin. #define locktetik 12 // Kapı kapatma tetik digital pin. int lt_durum; int ult_durum; int k_durum; int strdurum; int sayac = 0; int locksayac = 0; unsigned long lastTime = 0; unsigned long locklastTime = 0; long onTime = 10000; long stronTime = 2000; long strlockTime = 1000; long strUpDownTime = 4000; // Cam indirme ve kaldırma bekleme süresi void setup() { pinMode(Cam1Up, OUTPUT); pinMode(Cam2Up, OUTPUT); pinMode(Cam3Up, OUTPUT); pinMode(Cam4Up, OUTPUT); pinMode(Cam1Down, OUTPUT); pinMode(Cam2Down, OUTPUT); pinMode(Cam3Down, OUTPUT); pinMode(Cam4Down, OUTPUT); pinMode(kontak, INPUT); pinMode(locktetik, INPUT); pinMode(unlocktetik, INPUT); Serial.begin(9600); } void loop() { lt_durum = digitalRead(locktetik); ult_durum = digitalRead(unlocktetik); k_durum = digitalRead(kontak); Serial.print("Lock Tetik: "); Serial.println(lt_durum); Serial.print("Unlock Tetik: "); Serial.println(ult_durum); Serial.print("Kontak Durum: "); Serial.println(k_durum); if (k_durum == LOW && lt_durum == HIGH) { while (digitalRead(locktetik)); if (locksayac == 0) { locklastTime = millis(); } locksayac++; delay(10); } if (locksayac == 2 && (millis() - locklastTime) <= strlockTime) { strdurum = false; locksayac = 1; locklastTime = millis(); } else { strdurum = true; } if (strdurum == true) { if (locksayac == 2 && (millis() - locklastTime) <= onTime) { digitalWrite(Cam1Up, HIGH); digitalWrite(Cam2Up, HIGH); digitalWrite(Cam3Up, HIGH); digitalWrite(Cam4Up, HIGH); delay(strUpDownTime); digitalWrite(Cam1Up, LOW); digitalWrite(Cam2Up, LOW); digitalWrite(Cam3Up, LOW); digitalWrite(Cam4Up, LOW); locksayac = 0; locklastTime = millis(); } } if (locksayac == 2 && (millis() - locklastTime) > onTime) { locksayac = 1; locklastTime = millis(); } if (k_durum == LOW && ult_durum == HIGH) { while (digitalRead(unlocktetik)); if (sayac == 0) { lastTime = millis(); } sayac++; delay(10); } if (sayac == 2 && (millis() - lastTime) <= stronTime) { strdurum = false; sayac = 1; lastTime = millis(); } else { strdurum = true; } if (strdurum == true) { if (sayac == 2 && (millis() - lastTime) <= onTime) { digitalWrite(Cam1Down, HIGH); digitalWrite(Cam2Down, HIGH); digitalWrite(Cam3Down, HIGH); digitalWrite(Cam4Down, HIGH); delay(strUpDownTime); digitalWrite(Cam1Down, LOW); digitalWrite(Cam2Down, LOW); digitalWrite(Cam3Down, LOW); digitalWrite(Cam4Down, LOW); sayac = 0; lastTime = millis(); } } if (sayac == 2 && (millis() - lastTime) > onTime) { sayac = 1; lastTime = millis(); } } //--------------------------------------------------------------------- //--------------------------------------------------------------------- |
merhaba linea emotion aracımda alarm takılı alarmın kendi içinde olan özellikten kapılar kilitlendiğinde 20sn – (eksi) tetik çıkışı veriyor bu çıkış ile arduino olmadan da camları sadece kapatmak için kullanılabilmi bunu nasıl uyarlamam gerekli
Merhabalar öncelikle ilginize teşekkür ederim. Kullanmış olduğunuz alarm modülünün markası modelini yazar mısınız yardımcı olmaya çalışayım?
İyi günler. Çalışmalarınız yakından takip ediyorum. Devre şemasını proteus tan çizmişsiniz galiba. Çiziminizin projesi duruyorsa mail olarak atabilirmisiniz.
Teşekkürler İsmail bey, proje malesef yoktur mevcut çizim gorselinden faydalanabilirsiniz.
Hocam selamlar
Yakup abinin yeni yaptığı modülü incelediğimde iki transistörle işi çözdüğünüzü gördüm acaba o konuyu nasıl çözdünüz.
selam aleykum öncelikle paylaşim allah razi olsun sizden. Paylştiginiz malzemeri almaya gittigim dirençlerin kac volt oldugu sordular. Burdaki bilgilerde direç voltlari yazmiyor bu konuda bilgi alabilirmiyim sizden. Şimdiden teşekkürler.
Direncin birimi ohm dur sormuş olduğu volt değil watt olabilir. Devrede kullanılan tum direncler 1/4w dır.
selam aleyküm hocam bir sorum daha olacak size
ardunio’yu kahverengi sokette bulunan kırmızı-siyahtan aldığımız +12V 7805 5V regülatör ile 5v olarak besliyoruz ama siz (1 ADET 7809 9V VOLTAJ REGÜLATÖRÜ (ARDUİNO BESLEME İÇİN KULLANILACAK)) demişsiniz biz iki defa mı besliyeceğiz arduino’yu
Hayır bundan sonra yapacaklar için yazıyı editledim 7805 ile de besleyebilirsiniz extra bir voltaj regülatörü kullanmanıza gerek yok almışsınız zaten 7805
selam aleyküm
kahverengi sokette aldığımız mavi-beyaz 0.5 mm kabloyu şemaya göre sol taraftaki 2 ve 3 nolu girişe bağlıyoruz
benim anlamadığım iki girişe de aynı kabloyu bağlıyoruz bu iki kablonun görevleri farklı olması lazım değil mi ?
teşekkür ederim 🙂
Kusura bakmayın sorunuzdan hiç birşey anlamadım şema açık ve net şekilde neyin nereye bağlanacağı bellidir.
Ustam kolay gelsin ben aydından modülden almıştım elektrikçiyim bende. Benim size farklı bi sorum olacak kumandadan kapıları aç kapa yaptığımız zaman sinyallerde yanıp sönüyo biliyosunuz bunu sağlayan m190 mı acaba eğer oysa çıkış uçlarını biliyomusunuz.