tag:blogger.com,1999:blog-70133549672703986572024-03-19T11:48:52.254+03:00Devreler & ProjelerFırat Tarmanhttp://www.blogger.com/profile/04049964115264757037noreply@blogger.comBlogger45125tag:blogger.com,1999:blog-7013354967270398657.post-59922628448277549322023-05-16T00:23:00.004+03:002023-06-02T23:31:30.898+03:00Atomik Saat (Neo6Mv2 GPS modülü kullanarak saat yapımı)<p><span style="font-size: large;"><span style="font-family: verdana;">Elektronik ile uğraşan pek çok meraklının ilk yaptığı devrelerden biri de saatlerdir. Günümüzde Arduino gibi mikroişlemci kartları ve RTC'ler (Real Time Clock = Gerçek Zamanlı Saat) sayesinde bu iş daha da kolaylaştı. Ancak bu şekilde yapılan her saatin bir hata payı oluyor. Bazı saatler yılda birkaç dakika şaşarken, RTC pek kaliteli değilse günde 1-2 dakika bile ileri/geri gidebiliyor.</span></span></p><p><span style="font-size: large;"><span style="font-family: verdana;"> </span></span></p><p><span style="font-size: large;"><span style="font-family: verdana;">Referans olarak kullanabileceğim bir saat yapma fikri aklıma geldiğinde, ilk olarak GSM şebekesini ya da internet üzerinde bulunabilecek atomik saatleri (örneğin <a href="http://time.is" rel="nofollow" target="_blank">time.is</a>) kullanmayı düşündüm. Bunlar işi nispeten zorlaştırıyor - telefondan bilgiyi Arduino'ya aktarma ya da Arduino'yu internete bağlama gibi. Daha sonra aklıma GPS modülleri geldi. Nispeten ucuza bulunan bu modüller, konum bilgisi vermeleri yanında uydudan çok yüksek doğrulukta saat bilgisi de alabiliyorlar. Bu tam da benim istediğim özellikti.</span></span></p><p><span style="font-size: large;"><span style="font-family: verdana;"> </span></span></p><div class="separator" style="clear: both; text-align: center;"><span style="font-size: large;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgjX4T9BK-bt4cik3J8eNc7zFmQUn7dokDrXJIRvlE5NNzybjI8zYHc2brrrUuPz-Q_sdtUravP5lTtdOA4HOBJxZSTzaNR1sQAFDEsaa7tUjypTOmEI_DdToTuoRoJvlxWcfSKdAM9zNJlSQA2r8_XIO4KQbme4Rlf3njjumI5A6wOHdDoABvKWryS/s581/04%20GPS%20Mod%C3%BCl%C3%BC%20Detay-1.jpg" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="388" data-original-width="581" height="214" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgjX4T9BK-bt4cik3J8eNc7zFmQUn7dokDrXJIRvlE5NNzybjI8zYHc2brrrUuPz-Q_sdtUravP5lTtdOA4HOBJxZSTzaNR1sQAFDEsaa7tUjypTOmEI_DdToTuoRoJvlxWcfSKdAM9zNJlSQA2r8_XIO4KQbme4Rlf3njjumI5A6wOHdDoABvKWryS/s320/04%20GPS%20Mod%C3%BCl%C3%BC%20Detay-1.jpg" width="320" /></a></span></div><span style="font-size: large;"><br /></span><p></p><p><span style="font-size: large;"><span style="font-family: verdana;">Piyasadan makul sayılabilecek bir fiyata bulduğum Neo6Mv2 modülü ile böyle bir saat devresi tasarladım (tasarladım derken 1-2 bağlantı zaten). Devreyi aşağıda inceleyebilirsiniz. İkinci resim biraz daha detaylı. Üzerlerine tıklayarak büyütebilirsiniz.<br /></span></span></p><p><span style="font-size: large;"><span style="font-family: verdana;"></span></span></p><div class="separator" style="clear: both; text-align: center;"><span style="font-size: large;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgC1QNl-58RC8Ibb5T91xRxosHCAtPavY8Q9BZQBt5_tYSU9AGiyOAgGQfvkGSUy-WraFZ-kFxN2cMPZNRq_G5nU1-Ub5tuIprhNn1yTpj650tURV5iGnzieqtdcwutVfaZ2ulhQlHlynMVzX8zRZ6du_d0cfQnLevNQhMwu8Mdad_rWVrBwXnP0vDe/s1755/12%20%C5%9Eema.jpg" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="1677" data-original-width="1755" height="306" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgC1QNl-58RC8Ibb5T91xRxosHCAtPavY8Q9BZQBt5_tYSU9AGiyOAgGQfvkGSUy-WraFZ-kFxN2cMPZNRq_G5nU1-Ub5tuIprhNn1yTpj650tURV5iGnzieqtdcwutVfaZ2ulhQlHlynMVzX8zRZ6du_d0cfQnLevNQhMwu8Mdad_rWVrBwXnP0vDe/s320/12%20%C5%9Eema.jpg" width="320" /></a></span></div><span style="font-size: large;"><br /> <div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhg3_js7KVnuptLi4jzk7V2eZ--QSU4xhKSx5M0Ta4YAzjbZ_AiPE1vnSSPVcaEPFSo0xlLnHorAiH_v4xGyEIcRR2CVlQMUwNxFkNScz0PNC8PZNP0HUksTp_taGpnXKmoJIPR2QD5pHWADc5LYivzKCVtc2rLG1SdZG8tzRmFNna6N6HPSuuJAstP/s1716/13%20%C5%9Eema%20Zoom.jpg" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="1007" data-original-width="1716" height="188" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhg3_js7KVnuptLi4jzk7V2eZ--QSU4xhKSx5M0Ta4YAzjbZ_AiPE1vnSSPVcaEPFSo0xlLnHorAiH_v4xGyEIcRR2CVlQMUwNxFkNScz0PNC8PZNP0HUksTp_taGpnXKmoJIPR2QD5pHWADc5LYivzKCVtc2rLG1SdZG8tzRmFNna6N6HPSuuJAstP/s320/13%20%C5%9Eema%20Zoom.jpg" width="320" /></a></div> </span><p></p><p><span style="font-family: verdana; font-size: large;">Konu ile ilgili videoyu aşağıda bulabilirsiniz:</span></p><p><span style="font-family: verdana; font-size: large;"> </span></p><p><span style="font-family: verdana; font-size: large;"></span></p><div class="separator" style="clear: both; text-align: center;"><span style="font-family: verdana; font-size: large;"><iframe allowfullscreen="" class="BLOG_video_class" height="368" src="https://www.youtube.com/embed/_3lF9sF2fuo" width="442" youtube-src-id="_3lF9sF2fuo"></iframe></span></div><br /><p></p><p><span style="font-size: large;"><span style="font-family: verdana;">Bu modül için bir Arduino kütüphanesi de mevcut. GPS modülü ile çalışan bu saatin programını da aşağıda veriyorum. (Program henüz geliştirme aşamasında olduğu için düzeltmeler yaptıkça daha yeni sürümünü buraya ekleyebilirim)</span></span></p><p><span style="font-size: large;"><span style="font-family: verdana;"> </span></span></p><p><span style="font-size: large;"><span style="font-family: verdana;"></span></span></p><p><span style="font-size: large;"><span style="font-family: verdana;"></span></span></p><p><span style="font-family: courier; font-size: small;">/* NEO-6M GPS Modülü kullanılarak atomik doğrulukta saat yapımı / Atomic Clock using NEO-6M GSM Module <br /> * RTC olarak en basit modül olan DS1302 kullanılıyor / Using a simple RTC : DS1302<br /> * (c) Fırat Tarman June 2023<br /> */<br /><br />#include "LiquidCrystal.h" // 2 x 16 characters LCD<br />#include "virtuabotixRTC.h" // Library DS 1302<br />#include <SoftwareSerial.h> // For GPS Module<br />#include <TinyGPS++.h> // For GPS Module<br /><br />// DS1302 BAĞLANTILARI/CONNECTIONS<br />// DS1302 RST/CE --> A0<br />// DS1302 DAT/IO --> A1<br />// DS1302 CLK/SCLK --> A2<br />// DS1302 VCC --> 5v<br />// DS1302 GND --> GND<br /><br />// virtuabotixRTC myRTC(A2,A1,A0); // CLK/SCLK, DAT/IO, RST : ŞEMAYA GÖRE / ACCORDING TO THE CIRCUIT DIAGRAM<br /> virtuabotixRTC myRTC(A0,A1,A2); // CLK/SCLK, DAT/IO, RST : DEVREDE GERÇEKLEŞTİRİLEN / ACTUAL CIRCUIT<br /><br />// LCD Ekran/Display<br />// const int RST = 2, EN = 3, d4 = 4, d5 = 5, d6 = 6, d7 = 7; ŞEMAYA GÖRE / ORIGINAL CONFIGURATION<br />const int RST = 2, EN = 3, d4 = 4, d5 = 5, d6 = 7, d7 = 6; // DEVREDE GERÇEKLEŞTİRİLEN / CORRECTED ACCORDING TO THE ACTUAL CIRCUIT<br /><br />LiquidCrystal lcd(RST, EN, d4, d5, d6, d7);<br /><br />// GPS Module bağlantıları/connections<br />const int RXPin = 12;<br />const int TXPin = 11;<br /><br />SoftwareSerial gpsSerial(RXPin, TXPin);<br />TinyGPSPlus gps; // GPS Object<br /><br />const int ContrastPin=9;<br />int Contrast = 100; // Varsayılan değer / Default Value<br /><br />const int BackplaneLEDPin = 10; // Arka aydınlatma / Backlighting<br />int BackplaneLEDCurrent=100;<br /><br />boolean GPSDateValid = false;<br />boolean GPSTimeValid = false;<br />boolean GPSIndicator = false;<br />boolean ShowingRTC = true;<br />int GPSValidityCounter = 10;<br /><br />int Hour=0;<br />int Minute=0;<br />int Second=0;<br />int Year=2000;<br />int Month=1;<br />int Day=1;<br />int DayOfWeek=6; // Sunday=0, Monday=1, ...<br />boolean AddOneDay = false;<br /><br />const unsigned long GPSWait = 60000; // GPS'i her 60 saniyede bir kontrol ediyoruz / Update GPS every 60 seconds<br />unsigned long previousMillis = 0;<br /><br />void setup()<br /> {<br /> gpsSerial.begin(9600);<br /> lcd.begin(16,2);<br /> analogWrite(ContrastPin,Contrast);<br /> analogWrite(BackplaneLEDPin,BackplaneLEDCurrent); // Aydınlatmayı açıyoruz / Backlight on<br /> }<br /><br />void CalculateDOW () // Haftanın gününü hesapla / Calculate day-of-week<br /> {<br /> int t1, a1, y1;<br /> if (Year<2000) Year+=2000;<br /> t1 = (14 - Month) / 12;<br /> a1 = Month + 12 * t1 - 2;<br /> y1 = Year - t1;<br /> DayOfWeek=(Day + (13 * a1 - 1) / 5 +<br /> y1 + y1 / 4 - y1 / 100 + y1 / 400) % 7;<br /> }<br /><br />void DisplayClock() // İlk satıra saati yaz / Display the clock on first line <br /> {<br /> myRTC.updateTime(); <br /> Hour = myRTC.hours;<br /> Minute = myRTC.minutes;<br /> Second = myRTC.seconds;<br /> <br /> lcd.setCursor(0,0);<br /> if (ShowingRTC) lcd.print("RTC ");<br /> else lcd.print("GPS ");<br /> if(Hour<10)lcd.print("0"); // Sadece sabahları saatin başına 0 koyuyoruz / Leading zero in the morning <br /> lcd.print(Hour);<br /> lcd.print(":");<br /> if(Minute<10)lcd.print("0"); // Dakika 10'dan küçükse başına 0 koymak lazım / If minute is less than 10, a zero is added<br /> lcd.print(Minute);<br /> lcd.print(":");<br /> if(Second<10)lcd.print("0"); // 10'dan küçük saniyenin başına da 0 koyuyoruz / If second is less than 10, a zero is added<br /> lcd.print(Second);<br /><br /> if (GPSIndicator) <br /> { lcd.print(" GPS");<br /> delay(500);}<br /> else lcd.print(" ");<br /> GPSIndicator = false;<br />}<br /><br />void DisplayDate() // İkinci satıra tarihi yaz / Display date on second line <br /> { <br /> char DayNames [7][6] = {"PAZAR", "PZRTS", " SALI"," CARS", " PERS", " CUMA", "CMRTS"}; // Pazar=0, Pazartesi=1, ...<br /> myRTC.updateTime(); <br /> Year=myRTC.year;<br /> Month=myRTC.month;<br /> Day=myRTC.dayofmonth;<br /> DayOfWeek=myRTC.dayofweek; // Sunday=0, Monday=1... */<br /> CalculateDOW ();<br /> <br /> lcd.setCursor(0,1);<br /> lcd.print(Day);<br /> lcd.print("/");<br /> lcd.print(Month);<br /> lcd.print("/");<br /> lcd.print(Year);<br /> lcd.print(" ");<br /> lcd.setCursor(11,1);<br /> lcd.print(DayNames[DayOfWeek]);<br /> }<br /><br />void GPSDataToVariables() // GPS'den gelen veriyi saate yazıyoruz / We use GPS data for the clock variables<br />{<br /> GPSIndicator = false;<br /><br /> if (gps.time.isValid()) // GPS'i okuyabildiysek saati düzeltiyoruz / Correcting the clock if GPS read is successful<br /> { Hour = gps.time.hour() + 3;<br /> Minute = gps.time.minute();<br /> Second = gps.time.second();<br /> GPSTimeValid = true;<br /> }<br /> else GPSTimeValid = false;<br /><br /> if ((Hour == 0) || (Hour == 1) || (Hour == 2) || (Hour == 3)) AddOneDay = true;<br /> else AddOneDay = false;<br /> <br /> if (gps.date.isValid()) // GPS'i okuyabildiysek tarihi düzeltiyoruz / Correcting date if GPS read is successful<br /> { Month = gps.date.month();<br /> Day = gps.date.day();<br /> if (AddOneDay) Day++;<br /> Year = gps.date.year();<br /> if (Year == 2000) GPSDateValid = false;<br /> else GPSDateValid = true;<br /> if (GPSDateValid) CalculateDOW ();<br /> }<br /> else GPSDateValid = false;<br /><br /> if ((GPSDateValid) && (GPSTimeValid)) // Verileri okuyabilirsek ekranda "GPS" göstereceğiz / We will display "GPS" if we succesfully read the GPS data<br /> { myRTC.setDS1302Time(Second,Minute,Hour,DayOfWeek,Day,Month,Year);<br /> GPSIndicator = true;<br /> ShowingRTC = false;<br /> GPSValidityCounter = 10;}<br /> else<br /> { GPSValidityCounter--; <br /> if (GPSValidityCounter == 0)<br /> { GPSValidityCounter = 1;<br /> ShowingRTC = true;}<br /> }<br />}<br /><br />void ReadTheGPS()<br />{ while (gpsSerial.available() > 0)<br /> if (gps.encode(gpsSerial.read())) GPSDataToVariables();<br />}<br /><br />// MAIN LOOP<br />void loop() <br /> { unsigned long currentMillis = millis();<br /> if ((currentMillis - previousMillis) >= GPSWait) // GPSWait kadar milisaniye aralıklarla GPS okunuyor / Read GPS with time intervals determined by GPSWait<br /> { previousMillis = currentMillis;<br /> ReadTheGPS(); }<br /> DisplayClock();<br /> DisplayDate();<br /> } <br />// END OF MAIN LOOP</span><span style="font-family: courier; font-size: small;"><br /></span></p>Fırat Tarmanhttp://www.blogger.com/profile/04049964115264757037noreply@blogger.com0tag:blogger.com,1999:blog-7013354967270398657.post-73026139355254597052022-10-24T11:38:00.007+03:002022-11-11T00:35:24.888+03:00RDA5807M FM Radyo Modülü ve Arduino ile Basit Bir Radyo<p><span style="font-size: medium;"><span style="font-family: inherit;"></span></span></p><div class="separator" style="clear: both; text-align: center;"><span style="font-size: medium;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgFsG6opEu6KQpdkYRIohE6N8N9vwthDAmiKuXmCv1zuxj2VnWnMCvBFcfSuOTGuQ3RIElCcg8XSOjN9v41N9GhBF6jIJFzNoO1x_vmcIgcoFMsys9CUUwFwRStqgF3ARx_lU0fEjePwFdqXjeC_4yV43akpKxEoN0A4XIe9vdo2_7yDRSNe-gklKIb/s1920/Son%20Hali.png" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="1080" data-original-width="1920" height="360" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgFsG6opEu6KQpdkYRIohE6N8N9vwthDAmiKuXmCv1zuxj2VnWnMCvBFcfSuOTGuQ3RIElCcg8XSOjN9v41N9GhBF6jIJFzNoO1x_vmcIgcoFMsys9CUUwFwRStqgF3ARx_lU0fEjePwFdqXjeC_4yV43akpKxEoN0A4XIe9vdo2_7yDRSNe-gklKIb/w640-h360/Son%20Hali.png" width="640" /></a></span></div><span style="font-size: medium;"> </span><p></p><p><span style="font-size: medium;"><span style="font-family: inherit;">Sadece 1 cm x 1 cm ölçülerindeki RDA5807M modülü ile tatmin edici bir ses kalitesi sağlayan çok basit bir FM radyo yapılabiliyor. Modül, 2 kablo üzerinden bir mikroişlemci ya da mikrokontrolör ile haberleşerek çalışıyor. Mikroişlemci tarafından verilen frekansa kendisini ayarlıyor ve stereo alış sağlıyor.</span></span></p><p><span style="font-size: medium;"><span style="font-family: inherit;"><br /></span></span></p><p><span style="font-size: medium;"><span style="font-family: inherit;">Amplifikatör olarak elbette hazır modüller de kullanılabilir. Ben elimde çok miktarda TDA2822M entegresi olduğu için kendim yapmayı tercih ettim. Stereo olan bu entegreye sadece birkaç kondansatör ve direnç eklemek yeterli. Benim kullandığım 9V beslemede entegre 2 x 1W çıkış verebiliyor. Bu çıkış küçük bir radyo için fazlası ile yeterli.</span></span></p><p><span style="font-size: medium;"><span style="font-family: inherit;"> </span></span></p><table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto;"><tbody><tr><td style="text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhf7dYL8AYUmcA2Ori1I1riE88VXgTY0uwW-tZ3M7Lo1HhjU_PIdA4jzDpy5Y5LPwIoE8cIo9ArgFrZrrUz9lDMCgkTnacMzVHKDEt_8YRWOtmsDxaQKrxasCn49vBsrcYAY0EeV267UlKbPjPL38mnn31e-zyaDokYCqJZUh2xhOQfD1zCwfjweWP-/s3507/FM%20Radyo.jpg" style="margin-left: auto; margin-right: auto;"><img border="0" data-original-height="2480" data-original-width="3507" height="452" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhf7dYL8AYUmcA2Ori1I1riE88VXgTY0uwW-tZ3M7Lo1HhjU_PIdA4jzDpy5Y5LPwIoE8cIo9ArgFrZrrUz9lDMCgkTnacMzVHKDEt_8YRWOtmsDxaQKrxasCn49vBsrcYAY0EeV267UlKbPjPL38mnn31e-zyaDokYCqJZUh2xhOQfD1zCwfjweWP-/w640-h452/FM%20Radyo.jpg" width="640" /></a></td></tr><tr><td class="tr-caption" style="text-align: center;">Şemayı büyütmek için üzerine tıklayınız<br /></td></tr></tbody></table><span style="font-size: medium;"><span style="font-family: inherit;"><br /></span></span><p></p><p><span style="font-size: medium;"><span style="font-family: inherit;">Şema oldukça basit. Sadece 3 farklı gerilim kullanmam gerekti, onu da şu şekilde çözdüm; Ana girişten 9V veriyorum. Bu gerilim amplifikatör entegresini besliyor (Aslında amplifikatör örneğin 3.3 voltta da çalışır ama gücü bayağı düşüyor). Aynı 9V gerilimi Arduino'ya da veriyorum. Arduino, üzerindeki gerilim regülatörü sayesinde kendi 5V gerilimini üretiyor. Devrenin en çok akım çeken kısmı amplifikatör ayrı bağlı olduğu için Arduino üzerindeki regülatör yüklenmiyor ve ısınmıyor bile. RDA5807M modülü 3.3 volt ile çalışıyor. Arduino üzerinde bir de 3.3 V çıkış olduğu için onun beslenmesi de kolayca sağlanıyor.</span></span></p><p><span style="font-size: medium;"><span style="font-family: inherit;"> </span></span></p><p><span style="font-size: medium;"><span style="font-family: inherit;">Radyonun frekans göstergesi LED'lerden oluşuyor. Ben eski görünümlü bir radyoya uydurmak için LED seçtim, aslında LCD gösterge ile çok daha hassas frekans gösterimi mümkün. Kısıtlı sayıda LED ile ancak tam frekansları gösterebildim (89, 90 ,91 vs. gibi). Öyle olunca elbette 90.0, 90.6 ya da 90.8'de sadece 90 MHz LED'i yandığından frekansı anlamak mümkün değil. Dediğim gibi, LCD ya da LED bir ekran kullanmak çok daha mantıklı. Ben sadece radyoya uyum sağlamak için bu şekilde yaptım.</span></span></p><p><span style="font-size: medium;"><span style="font-family: inherit;"> </span></span></p><p><span style="font-size: medium;"><span style="font-family: inherit;">Videoyu aşağıda izleyebilirsiniz. <br /></span></span></p><p><span style="font-size: medium;"><span style="font-family: inherit;"> </span></span></p><p><span style="font-size: medium;"></span></p><div class="separator" style="clear: both; text-align: center;"><span style="font-size: medium;"><iframe allowfullscreen="" class="BLOG_video_class" height="360" src="https://www.youtube.com/embed/G1nYj1LCkEw" width="433" youtube-src-id="G1nYj1LCkEw"></iframe></span></div><span style="font-size: medium;"><br /><br /></span><p></p><p><span style="font-size: medium;"><span style="font-family: inherit;">Cihaz için yazdığım basit Arduino programını da aşağıya kopyalıyorum. Bu programın geliştirilmesi gereken çok fazla özelliği var. Muhtemelen bir sonraki versiyonu ayrı bir blog yazısı ve video olarak yayınlayacağım.</span></span></p><p><span style="font-size: medium;"><span style="font-family: inherit;"> </span></span></p><pre class="western">// Radio with RDA5807M Module
// Firat Tarman (c) October 2022
#include <RDA5807.h>
RDA5807 rx;
const int NumberOfCathodes = 4;
int Cathodes[NumberOfCathodes] = {7,6,5,4};
const int NumberOfAnodes = 6;
int Anodes [NumberOfAnodes] = {13,12,11,10,9,8};
const int TotalDisplayOutputs = 10;
int CurrentFrequency = 10000; // 100 MHz, i.e. Real frequency multiplied by 100
boolean StereoStation = false;
const int Encoder_A = 3;
const int Encoder_B = 2;
const int Encoder_Switch = A0;
int Previous_Output;
boolean EncoderUpdate = false;
void setup()
{
for (int i = 0; i < NumberOfCathodes; i++)
{ pinMode(Cathodes[i], OUTPUT);
digitalWrite (Cathodes[i],HIGH);}
for (int i = 0; i < NumberOfAnodes; i++)
{ pinMode(Anodes[i], OUTPUT);
digitalWrite (Anodes[i],LOW);}
pinMode (Encoder_A, INPUT);
pinMode (Encoder_B, INPUT);
pinMode (Encoder_Switch, INPUT);
Previous_Output = digitalRead(Encoder_A); //Read the initial value of Output A
rx.setup();
rx.setVolume(4);
rx.setFrequency(10000); // 100.0 MHz
rx.setMono (false);
// rx.getRealFrequency();
// rx.getRssi();
// rx.setMute(true);
// rx.setMute(false);
} // END OF setup
void TurnOffAllLEDs()
{
for (int i = 0; i < NumberOfCathodes; i++)
{ digitalWrite (Cathodes[i],HIGH);}
for (int i = 0; i < NumberOfAnodes; i++)
{ digitalWrite (Anodes[i],LOW);}
}
void LightLEDs (int Frequency)
{ int Freq_Index=0;
if (EncoderUpdate) rx.setFrequency(Frequency);
TurnOffAllLEDs();
if (StereoStation)
{ digitalWrite (Cathodes[0],LOW);
digitalWrite (Anodes[0],HIGH);
delay(5);
} else delay(5);
TurnOffAllLEDs();
Frequency /= 100;
if ((Frequency > 87) && (Frequency < 93)) // Frequencies between 88 - 92 (First LED is stereo LED)
{ digitalWrite (Cathodes[0],LOW);
Freq_Index = Frequency - 87;
digitalWrite (Anodes[Freq_Index],HIGH);
delay(5);}
if ((Frequency > 92) && (Frequency < 99)) // Frequencies between 93 - 98
{ digitalWrite (Cathodes[1],LOW);
Freq_Index = Frequency - 93;
digitalWrite (Anodes[Freq_Index],HIGH);
delay(5);}
if ((Frequency > 98) && (Frequency < 105)) // Frequencies between 99 - 104
{ digitalWrite (Cathodes[2],LOW);
Freq_Index = Frequency - 99;
digitalWrite (Anodes[Freq_Index],HIGH);
delay(5);}
if ((Frequency > 104) && (Frequency < 109)) // Frequencies between 105 - 108
{ digitalWrite (Cathodes[3],LOW);
Freq_Index = Frequency - 105;
digitalWrite (Anodes[Freq_Index],HIGH);
delay(5);}
StereoStation = rx.isStereo();
} // END OF LightLEDs
void ReadEncoder()
{
EncoderUpdate=false;
if (digitalRead(Encoder_A) != Previous_Output)
{ if (digitalRead(Encoder_B) != Previous_Output)
{CurrentFrequency += 5;
if (CurrentFrequency > 10800) CurrentFrequency = 10800;
}
else
{CurrentFrequency -= 5;
if (CurrentFrequency < 8800) CurrentFrequency = 8800;
}
EncoderUpdate=true;
}
Previous_Output = digitalRead(Encoder_A);
}
void ReadEncoderSW()
{
if (digitalRead(Encoder_Switch) == 0)
{
// SWITCH PRESSED ACTIONS
}
}
void loop()
{
LightLEDs (CurrentFrequency);
ReadEncoder();
ReadEncoderSW();
} // END OF MAIN LOOP</pre>Fırat Tarmanhttp://www.blogger.com/profile/04049964115264757037noreply@blogger.com0tag:blogger.com,1999:blog-7013354967270398657.post-8827946984851391152022-09-15T10:40:00.003+03:002022-09-17T22:47:36.563+03:00Arduino ile basit bir LED göstergeli saat<p>Arduino ve 7-segment göstergeler kullanılarak yapılabilecek en basit saatlerden biri. Saati göstermesinin yanında tarihi ve haftanın hangi gün olduğunu da gösterebiliyor.</p><p> </p><p>Normalde piyasada oldukça ucuza satılan kitler ile çok daha basit saatler yapılabilir. Benim kullandığım multiplex LED gösterge yerine seri veri girişi olan daha basit bir gösterge de kullanılabilir. Ancak benim amacım prensiplerin daha iyi anlaşılmasını sağlamak. Videodan da yararlanarak kolayca bu saati yapabilirsiniz.</p><p> </p><p>Fotoğrafta videoda yaptığım prototipi görebilirsiniz.</p><p></p><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhwmoVNINxXjq3a3zmKC9LSbpbmGoi-nx3r4wfmvjw8MnwR6eWZf3YnSoCOyFG3C1-ji7_OqJJUdpgMdBg2B9I5Df-53k1Q5ISjHi1T2kn7u9zODpwyMDEp7eCVYgOvlykOoUwUgr_qge7BSCr4VSMrMVoztmzgf0UVaKBKMvMigvVH9QEIydvum6yn/s1920/Arduino%20ile%20Saat.png" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="1080" data-original-width="1920" height="283" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhwmoVNINxXjq3a3zmKC9LSbpbmGoi-nx3r4wfmvjw8MnwR6eWZf3YnSoCOyFG3C1-ji7_OqJJUdpgMdBg2B9I5Df-53k1Q5ISjHi1T2kn7u9zODpwyMDEp7eCVYgOvlykOoUwUgr_qge7BSCr4VSMrMVoztmzgf0UVaKBKMvMigvVH9QEIydvum6yn/w503-h283/Arduino%20ile%20Saat.png" width="503" /></a></div><br /> Gerçek Zamanlı Saat (RTC) olarak o anda elimde olan DS1302'li bir modül kullandım. Bu modül Arduino ile 3 tel üzerinden iletişim sağlıyor. Daha gelişmiş modüller ile sadece 2 tel ile de iletişim sağlanabilir. Diğer modüllerin kullanımı için yazılımda ufak değişiklikler gerekecek, onları da bu blogu okuyanlara ev ödevi olarak bırakalım.<p></p><p> </p><p>Bu devre için ilk çizdiğim şema aşağıda (üzerine tıklayarak büyütebilirsiniz);</p><p></p><p> </p><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhmVK3BjbbzzrmqZMQX_oRiQOQNednTNMZQYbe2W77uAnIDzZ5kx7rImo8uFgNqsHH0moKE__e3M-Z5_nJvDLnXrZbu7J5OqIt1__uNVkND7p9SQ4bC6jd2ej9AOeAERrKfjlCNQRWrX1u-lUno0AV4naWdhnxq3GQJ9wpDIuHCkcAixzFas9heejRH/s1922/%C4%B0lk%20%C5%9Eema.jpg" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="1276" data-original-width="1922" height="402" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhmVK3BjbbzzrmqZMQX_oRiQOQNednTNMZQYbe2W77uAnIDzZ5kx7rImo8uFgNqsHH0moKE__e3M-Z5_nJvDLnXrZbu7J5OqIt1__uNVkND7p9SQ4bC6jd2ej9AOeAERrKfjlCNQRWrX1u-lUno0AV4naWdhnxq3GQJ9wpDIuHCkcAixzFas9heejRH/w608-h402/%C4%B0lk%20%C5%9Eema.jpg" width="608" /></a></div><br /><p></p><p>Devreyi fiziksel olarak yaptığımda kabloları kolayıma geldiği gibi lehimledim. Arduino ile çalışmanın güzel yanlarından biri de bu. Fiziksel bağlantılara göre yazılımdan düzeltmeleri yaparak devreyi o şekilde kullanabiliyorsunuz. Yaptığım fiziksel devrenin karşılığı, bağlantıların yer değiştirdiği aşağıdaki cizim oldu:</p><p></p><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg_ba0cv3VE4kUikeZ3XRZHlhDE8kz8Ch6sVZWAzVeYqqGqM6QYOHr0cJ__pPO0EZA5O0rILM23RcAnYXsnIoxCh-rzQYJ-9gfDOmfriJlEd5HWH7qhMdJNzLdNiFtB0NrH5RFgb92090l-xNOVkKdZjouwJz2_Fj6oKVqyaivp_4VJLRn6ZvYfmPHL/s1993/Son%20%C5%9Eema.jpg" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="1293" data-original-width="1993" height="402" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg_ba0cv3VE4kUikeZ3XRZHlhDE8kz8Ch6sVZWAzVeYqqGqM6QYOHr0cJ__pPO0EZA5O0rILM23RcAnYXsnIoxCh-rzQYJ-9gfDOmfriJlEd5HWH7qhMdJNzLdNiFtB0NrH5RFgb92090l-xNOVkKdZjouwJz2_Fj6oKVqyaivp_4VJLRn6ZvYfmPHL/w619-h402/Son%20%C5%9Eema.jpg" width="619" /></a></div><p></p><p> </p><p>YOUTUBE VİDEO;</p><div class="separator" style="clear: both; text-align: center;"><iframe allowfullscreen="" class="BLOG_video_class" height="453" src="https://www.youtube.com/embed/u0YsAYKSsHU" width="545" youtube-src-id="u0YsAYKSsHU"></iframe></div><p> </p><p>Yazmış olduğum programı aşağıda bulabilirsiniz. Program Arduino Nano üzerinde çalıştırılmıştır. Diğer Arduino modüllerinde de sorunsuz çalışacağını tahmin ediyorum. Katkıları için değerli arkadaşım <a href="http://mirmirik.com/" target="_blank">Tolga Mırmırık</a>'a da teşekkür ederim. Açıklamalar hem İngilizce hem de Türkçe yazılmıştır.</p><p>------------------------------------------------------------------------------------------------<br /></p><p>// Generic LED Clock with Arduino<br />// Fırat Tarman September 2022<br />// Contribution by : Tolga Mırmırık<br /><br />#include "virtuabotixRTC.h" // Library for DS 1302<br /><br />// DS1302 CONNECTIONS : DS1302 BAĞLANTILARI<br />// DS1302 RST/CE --> A2<br />// DS1302 DAT/IO --> A1<br />// DS1302 CLK/SCLK --> A0<br /><br />virtuabotixRTC myRTC(A0, A1, A2); // CLK/SCLK, DAT/IO, RST<br />// Sample use of the RTC : RTC kullanımı için örnek<br />// myRTC.setDS1302Time(0,19,15,0,6,9,2022);<br />// myRTC.setDS1302Time(Seconds,Minutes,Hours,DayOfWeek,Date,Month,Year);<br /><br />const int Total_Digits = 4; // 6 if we include seconds : Saniye varsa 6 olacak<br />const int Displays[Total_Digits] = {11,12,5,4}; // Digits 1,2,3,4; left to right (two more outputs for seconds) : Soldan sağa 1,2,3,4 (saniye varsa iki hane daha)<br />const int Total_Segments = 7;<br />const int Segments[Total_Segments] = {2,A3,7,9,10,A4,6}; // Segments a,b,c,d,e,f,g<br /><br />const int General_Delay = 1; // Delay used in various part of the program : Programın çeşitli kısımlarında kullanılan gecikme<br /><br />const int CorrectionSec = 0; // Correction for seconds (if the clock drifts more than a second a day) : Saat günde bir saniyeden fazla şaşıyorsa günlük düzeltme<br />boolean CorrectedSec = false;<br /><br />int Counter = 250; // Counter for RTC read frequency : RTC okuma sıklığı için sayaç<br />const int MaxLEDCount = 300; // Colon LED blink speed : İkili LED'lerin yanıp sönme hızı<br />int LED_Counter = MaxLEDCount; // Counter for blinking LEDs : Yanıp sönen LED'ler için sayaç<br />int Display_Counter = 2000; // Counter for alternating time/date : Saat ve tarih gösterimleri için sayaç<br /><br />int Hours_10 = 0;<br />int Hours_01 = 0;<br />int Minutes_10 = 0;<br />int Minutes_01 = 0;<br />int DigitValues[3];<br /><br />int CurrentHour = 0; // Current date/time information : Güncel saat/tarih bilgisi<br />int CurrentMinute = 0;<br />int CurrentSecond = 0;<br />int CurrentYear = 2022;<br />int CurrentMonth = 9;<br />int CurrentDate = 11;<br />int DayOfWeek = 0; // Sunday=0; Monday=1; Tuesday=2... : 0:Pazar, 1:Pazartesi, 2:Salı...<br />boolean ButtonPlus; // (+) Button : (+) düğmesi<br />boolean ButtonSet; // Set Button : Ayar düğmesi<br />const int PinPlus = A5; // Input for (+) Button : (+) düğmesi için giriş<br />const int PinSet = 3; // Input for Set Button : Ayar düğmesi için giriş<br />int CurrentMode = 1; // 1:Normal, 2:Set Year, 3:Set Month, 4:Set Date, 5:Set Hour, 6:Set Minute : 1:Normal, 2:Yıl ayarı,3:Ay ayarı,4:Tarih ayarı,5:Saat ayarı,6:Dakika ayarı<br /><br />boolean NeedUpdate = false; // Do we need to update the RTC? : RTC'yi ayarlamamız gerekiyor mu?<br /><br />const int TheColon = 8; // Colon between digits with two LEDs : Saat ve dakika arasındaki yanıp sönen LEDler<br /><br />// Segments a, b, c, d, e, f, g - NUMBERS : RAKAMLAR<br />int Numbers[10][Total_Segments] = {<br /> HIGH, HIGH, HIGH, HIGH, HIGH, HIGH, LOW, // 0<br /> LOW, HIGH, HIGH, LOW, LOW, LOW, LOW, // 1<br /> HIGH, HIGH, LOW, HIGH, HIGH, LOW,HIGH, // 2<br /> HIGH, HIGH, HIGH, HIGH, LOW, LOW, HIGH, // 3<br /> LOW, HIGH, HIGH, LOW, LOW, HIGH, HIGH, // 4<br /> HIGH, LOW, HIGH, HIGH, LOW, HIGH, HIGH, // 5<br /> HIGH, LOW, HIGH, HIGH, HIGH, HIGH, HIGH, // 6<br /> HIGH, HIGH, HIGH, LOW, LOW, LOW, LOW, // 7<br /> HIGH, HIGH, HIGH, HIGH, HIGH, HIGH, HIGH, // 8<br /> HIGH, HIGH, HIGH, HIGH, LOW, HIGH, HIGH // 9<br />};<br /><br />// Segments a, b, c, d, e, f, g - LETTERS : HARFLER<br />int Letters[15][Total_Segments] = {<br /> HIGH, HIGH, LOW, LOW, HIGH, HIGH, HIGH, // P, 0<br /> HIGH, HIGH, HIGH, LOW, HIGH, HIGH, HIGH, // A, 1<br /> HIGH, HIGH, LOW, HIGH, HIGH, LOW, HIGH, // Z, 2<br /> LOW,LOW, LOW, LOW, HIGH, LOW, HIGH, // r, 3<br /> LOW, LOW, LOW, HIGH, HIGH, HIGH, HIGH, // t, 4<br /> HIGH, LOW, HIGH, HIGH, LOW, HIGH, HIGH, // S, 5<br /> LOW, LOW, LOW, HIGH, HIGH, HIGH, LOW, // L, 6<br /> LOW, LOW, LOW, LOW, HIGH, HIGH, LOW, // I, 7<br /> HIGH, LOW, LOW, HIGH, HIGH, HIGH, LOW, // C, 8<br /> HIGH, LOW, LOW, HIGH, HIGH, HIGH, HIGH, // E, 9<br /> LOW, HIGH, HIGH, HIGH, HIGH, HIGH, LOW, // U, 10<br /> HIGH, HIGH, HIGH, LOW, HIGH, HIGH, LOW, // n, 11<br /> LOW,HIGH, HIGH, HIGH, LOW, HIGH, HIGH, // Y, 12<br /> HIGH, HIGH, HIGH, HIGH, LOW, HIGH, HIGH, // g, 13 <br /> LOW, HIGH, HIGH, HIGH, HIGH, LOW, HIGH // d, 14 <br />};<br /><br />void setup()<br />{ for (int i = 0; i < Total_Digits; i++) // Digit outputs : Hane çıkışları<br /> { pinMode(Displays[i], OUTPUT);}<br /> <br /> for (int i = 0; i < Total_Segments; i++) // Segment outputs : Segment çıkışları<br /> { pinMode(Segments[i], OUTPUT);}<br /> <br /> pinMode(PinPlus, INPUT_PULLUP); // (+) Button : (+) düğmesi<br /> pinMode(PinSet, INPUT_PULLUP); // SET Button : Ayar düğmesi<br /> pinMode(TheColon, OUTPUT);} // Blinking colon : Yanıp sönen LEDler<br /><br />void BlankDigits() // Blank digits : Haneleri söndür<br />{ for (int i = 0; i < Total_Digits; i++)<br /> { digitalWrite(Displays[i], LOW);}<br />}<br /><br />void BlankSegments() // Blank segments : Segmentleri söndür<br />{ for (int i = 0; i < Total_Segments; i++)<br /> { digitalWrite(Segments[i], LOW);}<br />}<br /><br />void BlankAll()<br />{<br /> BlankDigits();<br /> BlankSegments();<br />}<br /><br />void WriteANumber(int TheNumber, int digit)<br />{<br /> BlankAll();<br /> for (int i = 0; i < Total_Segments; i++)<br /> {digitalWrite(Segments[i], Numbers[TheNumber][i]);}<br /><br /> digitalWrite(Displays[digit], HIGH);<br /> delay(General_Delay);<br />}<br /><br />void WriteAChar(int TheChar, int digit)<br />{ BlankAll();<br /> for (int i = 0; i < Total_Segments; i++)<br /> {digitalWrite(Segments[i], Letters[TheChar][i]);}<br /> <br /> digitalWrite(Displays[digit], HIGH);<br /> delay(General_Delay);<br />}<br /><br />void ReadTheRTC() // Read RTC : RTC'yi oku<br />{ myRTC.updateTime(); <br /> CurrentHour = myRTC.hours;<br /> CurrentMinute = myRTC.minutes;<br /> CurrentSecond = myRTC.seconds;<br /><br />if (CurrentHour==1 & CurrentMinute==11)<br />{ if(!CorrectedSec)<br />{ CurrentSecond = CurrentSecond + CorrectionSec;<br /> CorrectedSec = true; }}<br />if (CurrentHour==1 & CurrentMinute==10) CorrectedSec=false;<br /><br /> CurrentYear = myRTC.year;<br /> CurrentMonth = myRTC.month;<br /> CurrentDate = myRTC.dayofmonth;<br /> Hours_10 = CurrentHour / 10;<br /> Hours_01 = CurrentHour - 10 * Hours_10;<br /> Minutes_10 = CurrentMinute / 10;<br /> Minutes_01 = CurrentMinute - 10 * Minutes_10;<br /><br /> DigitValues[0] = Hours_10;<br /> DigitValues[1] = Hours_01;<br /> DigitValues[2] = Minutes_10;<br /> DigitValues[3] = Minutes_01;<br />}<br /><br />void CalculateDOW() // Calculate Day of Week : Haftanın gününü hesaplayan fonksiyon<br />{<br /> int xx, a1, y1;<br /> if (CurrentYear < 2000)<br /> CurrentYear += 2000;<br /> xx = (14 - CurrentMonth) / 12;<br /> a1 = CurrentMonth + 12 * xx - 2;<br /> y1 = CurrentYear - xx;<br /> DayOfWeek = (CurrentDate + (13 * a1 - 1) / 5 + y1 + y1 / 4 - y1 / 100 + y1 / 400) %7;<br />}<br /><br />void DisplayTime()<br />{<br /> for (int i = 0; i < Total_Digits; i++)<br /> { WriteANumber(DigitValues[i],i);}<br />}<br /><br />void SelectWorkingMode()<br />{ int xx;<br /> int R1;<br /> int R2;<br /><br /> BlankAll();<br /><br /> switch (CurrentMode)<br /> {<br /> case 1:<br /> break;<br /><br /> case 2: // Set year (display YL "YIL") : Yıl ayarı<br /> WriteAChar(12, 0); // Y<br /> WriteAChar(6, 1); // L<br /><br /> xx = CurrentYear - 2000; // Last two digits of the year : Yılın son iki hanesi<br /> R1 = xx / 10;<br /> R2 = xx - 10 * R1;<br /> WriteANumber(R1,2); // 3. Display<br /> WriteANumber(R2,3); // 4. Display<br /> ButtonPlus = digitalRead(PinPlus);<br /> delay(General_Delay);<br /> if (ButtonPlus == 0)<br /> { CurrentYear++;<br /> delay(250);<br /> NeedUpdate = true;}<br /> <br /> if (CurrentYear >= 2100) CurrentYear = 2022;<br /> break;<br /><br /> case 3: // Set Month, display "AY" : Ayı ayarla<br /> WriteAChar(1,0); // A 1. Display<br /> WriteAChar(12,1); // Y 2. Display<br /> <br /> R1 = CurrentMonth / 10; <br /> R2 = CurrentMonth;<br /> if (R2 > 9)<br /> R2 = R2 - 10;<br /> WriteANumber(R1,2); // 3. Display<br /> WriteANumber(R2,3); // 4. Display<br /><br /> ButtonPlus = digitalRead(PinPlus);<br /> delay(General_Delay);<br /> if (ButtonPlus == 0)<br /> { CurrentMonth++;<br /> delay(250);<br /> NeedUpdate = true;}<br /> <br /> if (CurrentMonth > 12) CurrentMonth = 1;<br /> break;<br /><br /> case 4: // Set Date, display "gn" (GÜN) : Gün ayarı<br /> WriteAChar(13, 0); // g<br /> WriteAChar(11, 1); // n<br /> <br /> R1 = CurrentDate / 10; <br /> R2 = CurrentDate - 10 * R1;<br /> WriteANumber(R1,2); // 3. Display<br /> WriteANumber(R2,3); // 4. Display<br /><br /> ButtonPlus = digitalRead(PinPlus);<br /> delay(General_Delay);<br /> if (ButtonPlus == 0)<br /> { CurrentDate++;<br /> delay(250);<br /> NeedUpdate = true;}<br /> <br /> if (CurrentDate >= 32) CurrentDate = 1;<br /> break;<br /><br /> case 5: // Set hour, display "SA" (Saat) : Saat ayarı<br /> WriteAChar(5, 0); // S<br /> WriteAChar(1, 1); // A<br /><br /> R1 = CurrentHour / 10; <br /> R2 = CurrentHour - 10 * R1;<br /> WriteANumber(R1,2); // 3. Display<br /> WriteANumber(R2,3); // 4. Display<br /><br /> ButtonPlus = digitalRead(PinPlus);<br /> delay(General_Delay);<br /> if (ButtonPlus == 0)<br /> { CurrentHour++;<br /> delay(250);<br /> NeedUpdate = true;}<br /> <br /> if (CurrentHour >= 24) CurrentHour = 0;<br /> break;<br /><br /> case 6: // Set Minute, display "dA" (Dakika) : Dakika ayarla<br /> WriteAChar(14, 0); // d<br /> WriteAChar(1, 1); // A<br /><br /> R1 = CurrentMinute/10; <br /> R2 = CurrentMinute - (10 * R1);<br /> WriteANumber(R1,2); // 3. Display<br /> WriteANumber(R2,3); // 4. Display<br /><br /> ButtonPlus = digitalRead(PinPlus);<br /> delay(General_Delay);<br /> if (ButtonPlus == 0)<br /> { CurrentMinute++;<br /> delay(250);<br /> NeedUpdate = true;}<br /> if (CurrentMinute >= 60) CurrentMinute = 0;<br /> break;<br /><br /> default:<br /> break;<br /> }<br />}<br /><br />void BlinkColon()<br />{ int HalfCount;<br /> <br /> if (LED_Counter == MaxLEDCount) digitalWrite(TheColon, LOW);<br /> LED_Counter--;<br /> HalfCount = MaxLEDCount / 2;<br /> if (LED_Counter == HalfCount) digitalWrite(TheColon, HIGH);<br /> if (LED_Counter == 0) LED_Counter = MaxLEDCount;<br />}<br /><br />void CheckButtons()<br />{ ButtonSet = digitalRead(PinSet);<br /> delay(General_Delay);<br /> if (ButtonSet == 0)<br /> { CurrentMode++;<br /> delay(250);}<br /> <br /> if (CurrentMode == 7)<br /> { if (NeedUpdate)<br /> { CalculateDOW();<br /> myRTC.setDS1302Time(CurrentSecond, CurrentMinute, CurrentHour, DayOfWeek, CurrentDate, CurrentMonth, CurrentYear);<br /> NeedUpdate = false;}<br /> CurrentMode = 1;}<br />}<br /><br />void DisplayDate()<br />{<br /> int R1;<br /> int R2;<br /> int MyTempCounter = 1;<br /> do<br /> { R1 = CurrentDate / 10; <br /> R2 = CurrentDate - 10 * R1;<br /> WriteANumber(R1,0); // 1. Display <br /> WriteANumber(R2,1); // 2. Display<br /><br /> R1 = CurrentMonth / 10; <br /> R2 = CurrentMonth;<br /> if (R2 > 9)<br /> R2 = R2 - 10;<br /> WriteANumber(R1,2); // 3. Display<br /> WriteANumber(R2,3); // 4. Display<br /><br /> MyTempCounter++;<br /> } while (MyTempCounter <= 400);<br /><br /> MyTempCounter = 1;<br /> CalculateDOW();<br /> do<br /> { MyTempCounter++;<br /> switch (DayOfWeek)<br /> {<br /> case 0: // Sunday - PAZr<br /> WriteAChar(0, 0);<br /> WriteAChar(1, 1);<br /> WriteAChar(2, 2);<br /> WriteAChar(3, 3);<br /> break;<br /><br /> case 1: // Monday - PZtS<br /> WriteAChar(0, 0);<br /> WriteAChar(2, 1);<br /> WriteAChar(4, 2);<br /> WriteAChar(5, 3);<br /> break;<br /><br /> case 2: // Tuesday - SALI<br /> WriteAChar(5, 0);<br /> WriteAChar(1, 1);<br /> WriteAChar(6, 2);<br /> WriteAChar(7, 3);<br /> break;<br /><br /> case 3: // Wednesday - CArS<br /> WriteAChar(8, 0);<br /> WriteAChar(1, 1);<br /> WriteAChar(3, 2);<br /> WriteAChar(5, 3);<br /> break;<br /><br /> case 4: // Thursday - PErS<br /> WriteAChar(0, 0);<br /> WriteAChar(9, 1);<br /> WriteAChar(3, 2);<br /> WriteAChar(5, 3);<br /> break;<br /><br /> case 5: // Friday - CUnA<br /> WriteAChar(8, 0);<br /> WriteAChar(10, 1);<br /> WriteAChar(11, 2);<br /> WriteAChar(1, 3);<br /> break;<br /><br /> case 6: // Saturday - CtSI<br /> WriteAChar(8, 0);<br /> WriteAChar(4, 1);<br /> WriteAChar(5, 2);<br /> WriteAChar(7, 3);<br /> break;<br /> }<br /> } // DO<br /> while (MyTempCounter <= 400);<br />}<br /><br />void loop()<br />{<br /> CheckButtons();<br /> if (CurrentMode == 1)<br /> { <br /> DisplayTime();<br /> BlinkColon();<br /> Counter--;<br /> if (Counter == 0) // Read RTC in every 250 loops : RTC'yi her 250 döngüde bir okuyoruz<br /> { ReadTheRTC();<br /> Counter = 250;}<br /> <br /> Display_Counter--;<br /> if (Display_Counter == 0)<br /> { digitalWrite(TheColon, LOW); // Blank the colon : Orta LED'leri söndür<br /> DisplayDate();<br /> Display_Counter = 2000;}<br /> }<br /> else<br /> SelectWorkingMode();<br />}<br /></p><p><br /></p>Fırat Tarmanhttp://www.blogger.com/profile/04049964115264757037noreply@blogger.com2tag:blogger.com,1999:blog-7013354967270398657.post-53784011710119368582022-01-13T12:40:00.008+03:002022-01-19T12:35:37.526+03:00VFD (Vacuum Fluorescent Display) Sürücü Devre<p><span style="font-family: verdana;"><span style="font-size: small;">VFD'leri sürmek için bir devre tasarladım. Aşağıdaki videoda anlattığım bu devrenin çizimini altta bulabilirsiniz. Şemayı büyütmek için üzerine tıklayabilirsiniz, "resmi yeni sekmede aç" seçeneği ile daha da büyütebilirsiniz. Devre ile ilgili açıklama da videoda.</span></span></p><p><span style="font-family: verdana;"><span style="font-size: small;"></span></span></p><div class="separator" style="clear: both; text-align: center;"><span style="font-size: small;"><iframe allowfullscreen="" class="BLOG_video_class" height="387" src="https://www.youtube.com/embed/5oqfimz4qPk" width="466" youtube-src-id="5oqfimz4qPk"></iframe></span></div> <div class="separator" style="clear: both; text-align: center;"><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/a/AVvXsEgx6AFm7pbdEv51DqasATpjW2IILMmE8l0ukQ_mGYTkStPRDNzAT7TwqhK8mV02lTCNEnoubUu8rxPhcufqS4dZkJl6L9leMbCGmiubK_UEDu_Qk69bM6pCXD0C8UZWZDXxGcNP6HEOMsXkSNuWIoFB-dgxPOrIXe4tq4Tfdt8GWBkeoue2FxBQ2J6B=s3507" style="margin-left: 1em; margin-right: 1em;"><img alt="VFD Display v2" border="0" data-original-height="2480" data-original-width="3507" height="441" src="https://blogger.googleusercontent.com/img/a/AVvXsEgx6AFm7pbdEv51DqasATpjW2IILMmE8l0ukQ_mGYTkStPRDNzAT7TwqhK8mV02lTCNEnoubUu8rxPhcufqS4dZkJl6L9leMbCGmiubK_UEDu_Qk69bM6pCXD0C8UZWZDXxGcNP6HEOMsXkSNuWIoFB-dgxPOrIXe4tq4Tfdt8GWBkeoue2FxBQ2J6B=w625-h441" title="VFD Display v2" width="625" /></a></div><br /> </div><p><br /></p>Fırat Tarmanhttp://www.blogger.com/profile/04049964115264757037noreply@blogger.com0tag:blogger.com,1999:blog-7013354967270398657.post-58099765544612297992021-01-17T08:38:00.002+03:002021-01-17T08:39:14.366+03:00Ucuz multimetrelerin güvenliği hakkında; detaylı sökme ve inceleme<p></p><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi2EhBOwaG-hG9wPFes4iMMvBuB6F25-GqFvopZ5HNbI_aT-ADsqdggzyQG1zBfvb37Ptz7i3e68ehRCSLzlqMfFQy3ckzo7IwuV3qhyob1vI7JGJkDWUSnGaXXG6UTAh95CkS6IBfe8WY/s1447/Toplu+Fotograf-1.jpg" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="1024" data-original-width="1447" height="333" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi2EhBOwaG-hG9wPFes4iMMvBuB6F25-GqFvopZ5HNbI_aT-ADsqdggzyQG1zBfvb37Ptz7i3e68ehRCSLzlqMfFQy3ckzo7IwuV3qhyob1vI7JGJkDWUSnGaXXG6UTAh95CkS6IBfe8WY/w471-h333/Toplu+Fotograf-1.jpg" width="471" /></a></div><p><br /><span style="font-family: verdana;"><span style="font-size: medium;">Piyasada çok ucuz fiyatlarla satılan multimetrelerden 3 tanesini tamamen
sökerek inceledim. Doğru ölçüm yapmalarından ziyade, ne kadar güvenli
olduklarına baktım. Ayrıca nispeten daha kaliteli bir multimetreyi de
açarak, bu cihazlarla karşılaştırdım.</span></span></p><p><span style="font-family: verdana;"><span style="font-size: medium;"> </span></span></p><p></p><p><span style="font-family: verdana;"><span style="font-size: medium;">Bu cihazlara güvenip güvenmemek, kullanıp kullanmamak arasında
kaldıysanız aşağıdaki videoyu izlemenizi öneririm.</span></span></p><p><span style="font-family: verdana;"><span style="font-size: medium;"> </span></span></p><p><span style="font-family: verdana;"><span style="font-size: medium;">Hemen belirteyim; bu cihazları asla yüksek gerilimlerin olduğu ortamlarda kullanmayın. Üzerlerinde yazan 1000V, 750V gibi değerlere aldanmayın, şebeke gerilimi bile uygulamayın. Sadece cihazın kendisi değil, probları da güvensiz. Pil ölçme, adaptör ölçme gibi düşük gerilimli işlerde ve direnç, düşük akım ölçme işlemlerinde kullanabilirsiniz. 10 amper ölçüm kısmı da güvenli değil, onu da videoda anlattım zaten.</span></span></p><p><span style="font-family: verdana;"><span style="font-size: medium;"> </span></span></p><p><span style="font-family: verdana;"><span style="font-size: medium;"></span></span></p><div class="separator" style="clear: both; text-align: center;"><span style="font-size: medium;"><iframe allowfullscreen="" class="BLOG_video_class" height="349" src="https://www.youtube.com/embed/SaQPDSwkqT4" width="420" youtube-src-id="SaQPDSwkqT4"></iframe></span></div><span style="font-size: medium;"><br /></span><p></p>Fırat Tarmanhttp://www.blogger.com/profile/04049964115264757037noreply@blogger.com0tag:blogger.com,1999:blog-7013354967270398657.post-58765703479782201212020-05-16T00:06:00.000+03:002020-05-16T11:08:26.499+03:00Transistör dayanma gerilimi yükseltme<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEir1rT_qDZPGY8kLKaa-8mrA6gzVbqW_RecEekpfJaZaS410cDqg5670e3P5m1NlWpdTSM6mbcqOR9bT0rN-sdeQNGF48R-aRw5ugI0TTTj47L7AxJWTl8vf0QyJ9Q9_JZq7CjatIlAsmg/s1600/2020-05-16+Transist%25C3%25B6r+gerillim+artt%25C4%25B1r%25C4%25B1c%25C4%25B1.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="454" data-original-width="428" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEir1rT_qDZPGY8kLKaa-8mrA6gzVbqW_RecEekpfJaZaS410cDqg5670e3P5m1NlWpdTSM6mbcqOR9bT0rN-sdeQNGF48R-aRw5ugI0TTTj47L7AxJWTl8vf0QyJ9Q9_JZq7CjatIlAsmg/s1600/2020-05-16+Transist%25C3%25B6r+gerillim+artt%25C4%25B1r%25C4%25B1c%25C4%25B1.png" /></a></div>
<span style="font-size: large;"><span style="font-family: "verdana" , sans-serif;">Bazen elimizdeki transistörün kollektör-emetör dayanma gerilimi istediğimiz değerde olmaz. O zaman bu devredeki gibi bir çözüm bulabiliriz. </span></span><br />
<br />
<span style="font-size: large;"><span style="font-family: "verdana" , sans-serif;">Üç transistörü bu şekilde bağlayarak dayanma gerilimi arttırılabilir. Örneğin transistörler BC 547 olursa bu devrenin dayanma gerilimi yaklaşık 100V olacaktır. Transistörler doymaya girdiğinde C-E arasında yaklaşık 2.2V kalır. Bu değer her ne kadar tek transistöre göre oldukça fazlaysa da, çoğu uygulamada yeterli olacaktır.</span></span>Fırat Tarmanhttp://www.blogger.com/profile/04049964115264757037noreply@blogger.com0tag:blogger.com,1999:blog-7013354967270398657.post-56874771486339665182020-05-14T08:46:00.002+03:002020-05-17T22:59:24.326+03:00Kuvars Hassaslığında 1 Hz Saat Frekansı - 2<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgI7PDFzSeUE9nwcsvaXF1-AyBHJjwZte-2G1N8uVOpElCVM1kFu4kt02h911tAUjxSSpSl15b_GZB7AnPNidIxE8hHceJB9r39QhxuxjUvBT9K0DpXH__opQ29bQt5cyoUUgj331yLiSk/s1600/2020-05-14+Saatten+1+Hz+-+2.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="552" data-original-width="536" height="400" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgI7PDFzSeUE9nwcsvaXF1-AyBHJjwZte-2G1N8uVOpElCVM1kFu4kt02h911tAUjxSSpSl15b_GZB7AnPNidIxE8hHceJB9r39QhxuxjUvBT9K0DpXH__opQ29bQt5cyoUUgj331yLiSk/s400/2020-05-14+Saatten+1+Hz+-+2.jpg" width="387" /></a></div>
<span style="font-size: large;"><span style="font-family: "verdana" , sans-serif;">Daha önce yayınladığım devrenin başka bir versiyonu. Saat modülünün motor bobinine giden iki ucu transistörlere bağlanarak 1 Hz'lik bir sinyal elde edilebiliyor. Normalde bu saat modülleri 1.5V ile çalışmalarına rağmen, 3V ile de büyük çoğunluğu sorun çıkarmıyor. Yine de çektiği akımı kontrol etmek lazım.</span></span><br />
<span style="font-size: large;"><span style="font-family: "verdana" , sans-serif;"><br /></span></span>
<span style="font-size: large;"><span style="font-family: "verdana" , sans-serif;"><a href="https://elektronikdevrelerprojeler.blogspot.com/2014/11/kuvars-hassaslgnda-1-hz-saat-frekans.html" target="_blank">Saat modülünden 1 Hz elde eden daha önce yayınladığım devrenin</a> açıklamasından diğer detaylara da bakılabilir.</span></span><br />
<br />
<span style="font-size: large;"><span style="font-family: "verdana" , sans-serif;"><span style="font-size: x-small;"><b>Kaynak : Elektor 7/8-2010</b></span> </span></span>Fırat Tarmanhttp://www.blogger.com/profile/04049964115264757037noreply@blogger.com0tag:blogger.com,1999:blog-7013354967270398657.post-25097268131254811572020-04-18T18:43:00.000+03:002020-04-18T18:47:41.899+03:00Arduino ve 2x16 LCD ile basit bir saat + sıcaklık/nem göstergesi<div class="separator" style="clear: both; text-align: center;">
</div>
<div class="separator" style="clear: both; text-align: center;">
<span style="font-family: inherit;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEghho_5yNYtNygeK9m2ExQsZzr3J_ds1GahXjCr7VtsmNPsKBDVu_c-K-zVBCw1ppqaDEUU2TnYMGZZ_ffqlHHHFFZPJrtdHMHVehKlSatwU6_XT58T9IZfEtNF1GHAUzvAujXWpxXJLNc/s1600/LCD+16x2+ile+RTC%2527li+saat_bb.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="1465" data-original-width="1600" height="365" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEghho_5yNYtNygeK9m2ExQsZzr3J_ds1GahXjCr7VtsmNPsKBDVu_c-K-zVBCw1ppqaDEUU2TnYMGZZ_ffqlHHHFFZPJrtdHMHVehKlSatwU6_XT58T9IZfEtNF1GHAUzvAujXWpxXJLNc/s400/LCD+16x2+ile+RTC%2527li+saat_bb.jpg" width="400" /></a></span></div>
<span style="font-family: inherit;">Arduino ve LCD ekran ile yapılabilecek hemen hemen en basit saat ve sıcaklık/nem gösterici devrenin breadboard çizimi yukarıda ve şeması aşağıda verilmiştir. LCD'nin ilk satırında saat, ikinci satırında ise değişimli olarak sıcaklık/nem ve tarih/haftanın günü gösteriliyor.</span><br />
<span style="font-family: inherit;"><br /></span>
<span style="font-family: inherit;">Saati ayarlamak için ayar butonuna basmak, daha sonra çıkan ekranlarda yıl/ay/gün/saat/dakika ayarlarını (+) ve (-) butonlarını kullanmak gerekiyor. Her bir ayardan sonra ayar butonuna basıldığında bir sonraki ayarlanacak parametre ekrana getiriliyor. Dakika ayarlandıktan sonra tekrar ayar butonuna basıldığında, saniye sıfırlanarak normal çalışma moduna geri dönülüyor.</span><br />
<span style="font-family: inherit;"><br /></span>
<span style="font-family: inherit;">Gerekli parçalar;</span><br />
<br />
<span style="font-family: inherit;">- Arduino (Uno, Nano veya diğerleri. Ben Uno kullandım)</span><br />
<span style="font-family: inherit;">- 2x16 LCD Tek renk Display (Gösterge)</span><br />
<span style="font-family: inherit;">- DS1302 RTC (Gerçek Zamanlı Saat) Modülü</span><br />
<span style="font-family: inherit;">- DHT 11 Sıcaklık ve Nem Sensörü</span><br />
<span style="font-family: inherit;">- Ayarlar için 3 adet buton</span><br />
<span style="font-family: inherit;">- Breadboard</span><br />
<span style="font-family: inherit;">- Saat modülünün yedek gücü olarak CR2032 pil</span><br />
<span style="font-family: inherit;">- Kablolar</span><br />
<span style="font-family: inherit;">- USB'den beslemek için 5V, güç konnektöründen beslemek için 7.5-9V arası DC güç kaynağı.</span><br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<span style="font-family: inherit;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiTkYEvPRy2XmcD3mD5M6nItzCDglvR60JoggAZ4ErDfdmIbLprxnRevFxtz-tK_YD8dwhIFnZW8uXj8wRyeiLdBrW1gajWcURqNoE4RFNuHAOYc_Oylqtq9eJNxN5WlajFXS8DuAJmAL0/s1600/LCD+16x2+ile+RTC%2527li+saat_schem.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="1005" data-original-width="1600" height="251" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiTkYEvPRy2XmcD3mD5M6nItzCDglvR60JoggAZ4ErDfdmIbLprxnRevFxtz-tK_YD8dwhIFnZW8uXj8wRyeiLdBrW1gajWcURqNoE4RFNuHAOYc_Oylqtq9eJNxN5WlajFXS8DuAJmAL0/s400/LCD+16x2+ile+RTC%2527li+saat_schem.jpg" width="400" /></a></span></div>
<span style="font-family: inherit;">Şemaların üzerine tıklayarak büyütülmüş hallerini görebilirsiniz.</span><br />
<span style="font-family: inherit;"><br /></span>
<span style="font-family: inherit;">Son derece hızlı bir şekilde yazdığım kodu da yazının sonuna ekliyorum. Hızlı yazıldığından pek çok eksiği olabilir. O da programlama çalışması olarak sizlere kalsın. Ben de ikinci versiyonu yaparsam kendime ödev olarak bırakıyorum.</span><br />
<span style="font-family: inherit;"><br /></span>
<span style="font-family: inherit;">Benim aklıma gelen iyileştirmeler şunlar;</span><br />
<span style="font-family: inherit;"><br /></span>
<span style="font-family: inherit;">- LCD display sık sık güncellenmesi nedeniyle hafif titriyor. Sadece değişen rakamları yazarak titreşimi azaltmak denenebilir.</span><br />
<br />
<span style="font-family: inherit;">- Butonların gecikme süreleri ile oynanarak cevap süreleri iyileştirilebilir.</span><br />
<br />
<span style="font-family: inherit;">- Kontrastı genelde kullanılan bir değerde bıraktım. Ayar menüsüne kontrast ayarları için ekleme yapılabilir. Aynı şekilde arka aydınlatma LED'i için de ayar olabilir. </span><span style="font-family: inherit;"><span style="font-family: inherit;">Arka aydınlatma LED'i için programa
yazdığım değer, LED'den yaklaşık 7 mA geçmesini sağlıyor ve son derece
yeterli. Daha fazla arttırmanızı çok önermem.</span></span><br />
<br />
<span style="font-family: inherit;">- Tarih ve sıcaklık/nem göstergelerinin zamanlamaları değiştirilebilir.</span><br />
<br />
<span style="font-family: inherit;">- Ayar yapılırken tüm Şubat ayları 29 gün farzediliyor. Yani 29 Şubat 2021 gibi bir tarih girerseniz RTC sapıtabilir. Biraz da üşendiğimden o kısıma bir kontrol yazmadım. Diğer ayların gün sayıları doğru çalışıyor.</span><br />
<br />
<span style="font-family: inherit;">- Ayar moduna girip hiçbir ayar yapılmasa dahi tarih ve saat bilgisi RTC'ye yazılıyor. Yani ayar menüsüne girip, hiçbir şey yapmadan çıkınca bile saniyeyi sıfırlamış oluyorsunuz :) </span><br />
<br />
<span style="font-family: inherit;">- Elimde o anda DS1302 olduğu için onu kullandım ama RTC olarak DS3231 kullanmanızı tavsiye ederim. Çok daha hassas çalışan bir modül ve DS1302 3 giriş/çıkış kullanırken, DS3231'e 2 tanesi (SDA-SCL) yetiyor. Elbette bunun için kodda değişiklikler de gerekecek.</span><br />
<br />
<span style="font-family: inherit;">- Haftanın günlerini (Pazartesi, Salı vb.) RTC'ler bulamıyor. Bunun için küçük bir fonksiyon eklemek zorunda kaldım. DS3231 library'lerinde bunu otomatik hesaplıyorlar. DS1302 library'de yoktu.</span><br />
<br />
<span style="font-family: inherit;">- Bu LCD'lerde 8 adet özel (custom) karakter üretilebiliyor. Böylece Türkçe karakter eklemek de mümkün oluyor. Bunu da deneyebilirsiniz.</span><br />
<span style="font-family: inherit;"><br /></span>
<span style="font-family: inherit;">Kodu aşağıya kopyalıyorum. Kullanılan 3 adet library de biraz arama ile kolayca bulunabilir. Yine de bağlantılara tıklayarak da erişebilirsiniz.</span><br />
<span style="font-family: inherit;"><br /></span>
<span style="font-family: inherit;"><a href="https://www.arduino.cc/en/Reference/LiquidCrystal" rel="nofollow" target="_blank">* LiquidCrystal.h</a> (Arduino IDE'de zaten var)</span><br />
<span style="font-family: inherit;"><a href="https://github.com/adafruit/DHT-sensor-library" rel="nofollow" target="_blank">* DHT.h</a></span><br />
<span style="font-family: inherit;"><a href="https://www.virtuabotix.com/resources.php?product=versalino" rel="nofollow" target="_blank">* virtuabotixRTC.h</a></span><br />
<span style="font-family: inherit;"><br /></span>
<span style="font-family: inherit;"><br /></span>
<span style="font-size: large;"><b><span style="font-family: inherit;">2x16 LCD Display ile Saat ve Sıcaklık/Nem Gösterici Programı:</span></b></span><br />
<br />
<span style="font-family: inherit;"><span style="font-family: "courier new" , "courier" , monospace;">/* 16 x 2 LCD gösterge ile basit bir saat<br /> * RTC olarak en basit modül olan DS1302 kullanılıyor<br /> * DHT-11 ile sıcaklık ve nem ölçümü<br /> * (c) Fırat Tarman Nisan 2020<br /> */<br /><br />#include "LiquidCrystal.h" // 2 x 16 karakter LCD<br />#include "DHT.h" // DHT-11 Sensör<br />#include "virtuabotixRTC.h" // DS 1302 için library<br /><br />// DS1302 İÇİN BAĞLANTILAR<br />// DS1302 RST/CE --> A0<br />// DS1302 DAT/IO --> A1<br />// DS1302 CLK/SCLK --> A2<br />// DS1302 VCC --> 5v<br />// DS1302 GND --> GND<br /><br />virtuabotixRTC myRTC(A2,A1,A0); // CLK/SCLK, DAT/IO, RST <br /><br />// LCD Ekran<br />const int RST = 2, EN = 3, d4 = 4, d5 = 5, d6 = 6, d7 = 7;<br />LiquidCrystal lcd(RST, EN, d4, d5, d6, d7);<br /><br />const int KontrastPin=9; // LCD Kontrast ayar pini<br />const int ArkaLEDPin=10; // LCD Arkaplan aydınlatma LED'i için pin<br />int Kontrast = 100; // Varsayılan değer<br />int ArkaLED=120; // akımı sınırlıyoruz (yaklaşık 7 mA)<br />int CalismaModu=1; // Normal Saat Ekranı<br />boolean AyarModundayiz=false;<br />int saat=1; // Program içindeki saat ve tarih bilgileri<br />int dakika=11;<br />int saniye=0;<br />int yil=2020;<br />int ay=4;<br />int gun=15;<br />int HaftaninGunu=0; // Pazar=0; Pazartesi=1 şeklinde<br />int ButonArti; // (+) Butonu<br />int ButonEksi; // (-) Butonu<br />int ButonAyar; // Ayar Menüsü Butonu<br />const int PinArti=0; // (+) Buton pini<br />const int PinEksi=1; // (-) Buton pini<br />const int PinAyar=11; // Ayar Menüsü Buton pini<br />const int Gecikme=50; // Pek çok yerde kullanılan gecikme (delay) için katsayı<br />float sicaklikC=0.0; // Santigrad olarak sıcaklık<br />float nem=0.0; // % olarak havanın nemi<br />int EkranSayaci=20; // İkinci satırda tarih ve sıcaklık/nem için sayaç.<br /> // Her 20 döngüde bir iki alternatiften biri gösterilir.<br />#define DHTPIN 8 // Sıcaklık/Nem sensörü için pin numarası<br />#define DHTTYPE DHT11 // Sıcaklık/Nem sensörü türü<br />DHT dht(DHTPIN, DHTTYPE);<br /><br />void setup() // Bir kere çalışan başlangıç fonksiyonu<br /> {<br /> Serial.begin(9600);<br /> lcd.begin(16,2);<br /> dht.begin();<br /> pinMode(PinArti,INPUT_PULLUP);<br /> pinMode(PinEksi,INPUT_PULLUP);<br /> pinMode(PinAyar,INPUT_PULLUP);<br /> analogWrite(KontrastPin,Kontrast); // Kontrast ayarı<br /> analogWrite(ArkaLEDPin,ArkaLED); // Aydınlatmayı açıyoruz<br /> CalismaModu=1; // Saat modunda başlıyoruz<br /> }<br /><br />void HaftaGunuHesapla () // Haftanın gününü RTC otomatik hesaplamıyorsa <br /> // kullanılacak fonksiyon (DS1302 hesaplamıyor)<br />{<br /> int ekleme, a1, y1;<br /> if (yil<2000) yil+=2000;<br /> ekleme = (14 - ay) / 12;<br /> a1 = ay + 12 * ekleme - 2;<br /> y1 = yil - ekleme;<br /> HaftaninGunu=(gun + (13 * a1 - 1) / 5 +<br /> y1 + y1 / 4 - y1 / 100 + y1 / 400) % 7;<br />}<br /><br />void saatiyazdir() // İlk satıra saat bilgisini yazdıran fonksiyon<br />{<br /> int gosterilensaat;<br /> int OOOS; // AM-PM yani Öğleden Önce (0), Öğleden Sonra (1) : ÖÖÖS :)<br /> myRTC.updateTime(); // RTC güncelleme<br /> saat=myRTC.hours; <br /> if (saat>11) OOOS=1; // PM<br /> else OOOS=0; // AM<br /> dakika=myRTC.minutes;<br /> saniye=myRTC.seconds;<br /> yil=myRTC.year;<br /> ay=myRTC.month;<br /> gun=myRTC.dayofmonth;<br /> HaftaninGunu=myRTC.dayofweek; // Pazar=0; Pazartesi=1 vd...<br /> if (saat>12) gosterilensaat=saat-12; // AM/PM için 12'ye kadar sayıyoruz<br /> else<br /> gosterilensaat=saat; // 24 saatlik gösterim yerine 12'li karşılığı<br /> lcd.setCursor(0,0); // Satır başı<br /> lcd.print(" "); // Tüm ekranı güncellemek yerine satırı silelim<br /> lcd.setCursor(0,0); // Tekrar satır başı<br /> lcd.print(" "); <br /> if((gosterilensaat<10)&&(OOOS==0))lcd.print("0"); // Sadece sabahları saatin başına 0 koyuyoruz <br /> lcd.print(gosterilensaat);<br /> lcd.print(":");<br /> if(dakika<10)lcd.print("0"); // Dakika 10'dan küçükse başına 0 koymak lazım<br /> lcd.print(dakika);<br /> lcd.print(":");<br /> if(saniye<10)lcd.print("0"); // 10'dan küçük saniyenin başına da 0 koyuyoruz<br /> lcd.print(saniye);<br /> if(OOOS==0) lcd.print(" AM"); // Öğleden önce<br /> if(OOOS==1) lcd.print(" PM"); // Öğleden sonra<br />}<br /><br />void sicaklikyazdir() // İkinci satıra sıcaklık ve nem bilgilerini yazan fonksiyon<br /> {<br /> static int olcumsayisi=20; // Her 20 döngüden birinde ölçüm alalım, sıcaklık ve nem rakamları<br /> // fazla hareketli olmasın.<br /> if (olcumsayisi==20) // Başlarken ilk ölçümü alabilmek için ilk "if" çalışmalı<br /> {<br /> olcumsayisi=0;<br /> sicaklikC = (dht.readTemperature()); // Sensörü oku<br /> nem = dht.readHumidity();<br /> }<br /> olcumsayisi++;<br /> lcd.setCursor(0,1);<br /> lcd.print(" ");<br /> lcd.setCursor(0,1);<br /> lcd.print(" ");<br /> lcd.print(sicaklikC, 1);<br /> lcd.print("C %");<br /> lcd.print(nem, 1);<br /> EkranSayaci--;<br /> }<br /> <br />void tarihyazdir() // İkinci satıra tarih ve haftanın günü bilgilerini yazan fonksiyon<br /> {<br /> char Gunler [7][6] = {"Pazar", "Pzrts", " Sali","Crsmb", "Prsmb", " Cuma", "Cmrts"}; // Pazar=0, Pazartesi=1, ...<br /> lcd.setCursor(0,1);<br /> lcd.print(" ");<br /> lcd.setCursor(0,1);<br /> lcd.print(gun);<br /> lcd.print("/");<br /> lcd.print(ay);<br /> lcd.print("/");<br /> lcd.print(yil);<br /> lcd.setCursor(11,1);<br /> lcd.print(Gunler[HaftaninGunu]);<br /> if (EkranSayaci==0) EkranSayaci=41;<br /> EkranSayaci--;<br /> }<br /><br />void ayarlariyap()<br />// AYAR MODU FONKSİYONU<br />{ <br /> switch (CalismaModu){<br /><br />case 1:<br /> break;<br /><br />case 2: // YIL<br /> lcd.clear();<br /> lcd.setCursor(0,0);<br /> lcd.print("YILI Giriniz");<br /> lcd.setCursor(0,1);<br /> lcd.print(yil);<br /> ButonArti=digitalRead(PinArti);<br /> delay(Gecikme);<br /> ButonEksi=digitalRead(PinEksi);<br /> delay(Gecikme);<br /> if(ButonArti==0)yil++;<br /> if(ButonEksi==0)yil--;<br /> if (yil>=2100) yil=2000;<br /> if (yil<=1999) yil=2099;<br /> break;<br /> <br />case 3: // AY<br /> lcd.clear();<br /> lcd.setCursor(0,0);<br /> lcd.print("AYI Giriniz");<br /> lcd.setCursor(0,1);<br /> lcd.print(ay);<br /> ButonArti=digitalRead(PinArti);<br /> delay(Gecikme);<br /> ButonEksi=digitalRead(PinEksi);<br /> delay(Gecikme);<br /> if(ButonArti==0)ay++;<br /> if(ButonEksi==0)ay--;<br /> if (ay>=13) ay=1;<br /> if (ay<=0) ay=12;<br /> break;<br /><br />case 4: // GÜN<br /> lcd.clear();<br /> lcd.setCursor(0,0);<br /> lcd.print("Gunu giriniz");<br /> lcd.setCursor(0,1);<br /> lcd.print(gun);<br /> ButonArti=digitalRead(PinArti);<br /> delay(Gecikme);<br /> ButonEksi=digitalRead(PinEksi);<br /> delay(Gecikme);<br /> if(ButonArti==0)gun++;<br /> if(ButonEksi==0)gun--;<br /> if ((ay==2))<br /> {<br /> if (gun==30) gun=1;<br /> if (gun==0) gun=29;<br /> }<br /> if ((ay==1)|(ay==3)|(ay==5)|(ay==7)|(ay==8)|(ay==10)|(ay==12))<br /> {<br /> if (gun==32) gun=1;<br /> if (gun==0) gun=31;<br /> }<br /> if ((ay==4)|(ay==6)|(ay==9)|(ay==11))<br /> {<br /> if (gun==31) gun=1;<br /> if (gun==0) gun=30;<br /> }<br /> break;<br /><br />case 5: // SAAT<br /> lcd.clear();<br /> lcd.setCursor(0,0);<br /> lcd.print("Saati giriniz");<br /> lcd.setCursor(0,1);<br /> lcd.print(saat);<br /> ButonArti=digitalRead(PinArti);<br /> delay(Gecikme);<br /> ButonEksi=digitalRead(PinEksi);<br /> delay(Gecikme);<br /> if(ButonArti==0)saat++;<br /> if(ButonEksi==0)saat--;<br /> if (saat==24) saat=0;<br /> if (saat<0) saat=23;<br /> break;<br /><br />case 6: // DAKİKA<br /> lcd.clear();<br /> lcd.setCursor(0,0);<br /> lcd.print("Dakika giriniz");<br /> lcd.setCursor(0,1);<br /> lcd.print(dakika);<br /> ButonArti=digitalRead(PinArti);<br /> delay(Gecikme);<br /> ButonEksi=digitalRead(PinEksi);<br /> delay(Gecikme);<br /> if(ButonArti==0)dakika++;<br /> if(ButonEksi==0)dakika--;<br /> if (dakika==60) dakika=0;<br /> if (dakika==-1) dakika=59;<br /> break;<br /><br />case 7: // ÇIKIŞ<br /> saniye=0;<br /> HaftaGunuHesapla ();<br /> myRTC.setDS1302Time(saniye,dakika,saat,HaftaninGunu,gun,ay,yil);<br /> lcd.clear();<br /> lcd.print("Kaydediliyor");<br /> CalismaModu++;<br /> for (int i=1;i<5;i++)<br /> {lcd.print("*"); <br /> delay(Gecikme*5);}<br /> break;<br />} // END OF SWITCH <br />} // AYAR MODU FONKSİYONU SONU <br /><br />// ANA PROGRAM DÖNGÜSÜ<br />void loop()<br /> { <br /> if (CalismaModu==1)<br /> {saatiyazdir();<br /> if (EkranSayaci>21) sicaklikyazdir();<br /> else<br /> tarihyazdir();}<br /><br /> if(CalismaModu==8)<br /> {CalismaModu=1;<br /> AyarModundayiz=false;}<br /> <br /> delay(Gecikme*4);<br /> <br /> ButonAyar=digitalRead(PinAyar);<br /> if (ButonAyar==0) <br /> {CalismaModu++;<br /> AyarModundayiz=true;}<br /><br /> if (AyarModundayiz) ayarlariyap();<br /> else delay (Gecikme*4);<br /> <br /> } <br />// ANA PROGRAM DÖNGÜSÜ SONU</span></span>Fırat Tarmanhttp://www.blogger.com/profile/04049964115264757037noreply@blogger.com7tag:blogger.com,1999:blog-7013354967270398657.post-1331768431093320022020-04-06T12:44:00.001+03:002020-04-06T12:44:44.540+03:0078XX serisi regülatörlerin çıkış gerilimini değiştirme<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiaVYp7TO0S2jU2dhk60PLStOSxSpTfxt1G_tqjFreGKyEMVkpTFpY8D07RDHvxU6Ve-5Bilfsm2KUs-uaDPx0pz5d6R5anmyJ6SlESI7Qf2hNYbBrA1MDOVJg6EtCgLzTo5O1AspPn8iY/s1600/2020-04-06+78XX+gerilim+y%25C3%25BCkseltme.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="486" data-original-width="768" height="253" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiaVYp7TO0S2jU2dhk60PLStOSxSpTfxt1G_tqjFreGKyEMVkpTFpY8D07RDHvxU6Ve-5Bilfsm2KUs-uaDPx0pz5d6R5anmyJ6SlESI7Qf2hNYbBrA1MDOVJg6EtCgLzTo5O1AspPn8iY/s400/2020-04-06+78XX+gerilim+y%25C3%25BCkseltme.jpg" width="400" /></a></div>
<span style="font-family: Verdana, sans-serif;"><span style="font-size: small;">78XX gerilim regülatörleri, 5V, 12V, 15V gibi sık kullanılan gerilimlerde üretiliyor ve çok da işe yarıyorlar. Peki almak istediğiniz çıkış geriliminde bir regülatör elinizde yoksa ya da hiç üretilmiyorsa ne yapılabilir?</span></span><br />
<span style="font-family: Verdana, sans-serif;"><span style="font-size: small;"><br /></span></span>
<span style="font-family: Verdana, sans-serif;"><span style="font-size: small;">Bu gerilim regülatörleri, çıkış gerilimlerini genelde eksiye (negatif regülatörlerde artıya) bağlanan orta ayaklarına göre ayarlıyorlar. Yani bu ortadaki ayağın gerilimini bir şekilde yükseltirseniz, çıkış gerilimi de o kadar artıyor. Yukarıdaki şemada olduğu gibi orta ayaktan şaseye bağlanan iki diyot ile çıkış gerilimi 1.2 ila 1.4V arasında arttırılabilir (silisyum diyotların üzerinde 0.6 ila 0.7V arasında bir gerilim kalır).</span></span><br />
<span style="font-family: Verdana, sans-serif;"><span style="font-size: small;"><br /></span></span>
<span style="font-family: Verdana, sans-serif;"><span style="font-size: small;">Örneğin 7.5V isteniyorsa 7806 bulabilirseniz iki diyot, 7805 için ise dört diyot denenebilir. Ben bu devreyi yapacaksam, genellikle birkaç diyot alıp, iletim gerilimlerini ölçüyorum ve en uygun iki tanesini takıyorum.</span></span><br />
<span style="font-family: Verdana, sans-serif;"><span style="font-size: x-small;"><b><br /></b></span></span>
<span style="font-family: Verdana, sans-serif;"><span style="font-size: x-small;"><b>Kaynak : Elektor 302 Circuits</b></span></span>Fırat Tarmanhttp://www.blogger.com/profile/04049964115264757037noreply@blogger.com0tag:blogger.com,1999:blog-7013354967270398657.post-69442365323585611732020-04-04T13:10:00.001+03:002020-04-04T14:30:53.124+03:00Aktif PC Hoparlörü - 12W Amplifikatör (TDA2030)<div class="separator" style="clear: both; text-align: center;">
</div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEisuRmDZOjF3ZFVyVRVhegO8KrCFpaijViL0jfh6lSvBS2fLk-ePfba8YkiCNNrn9D6399VF2oGCmRRAd4mwVsUwQg6kppy4OPJrrvAkvVa5QfdrPfrTmedNuhHHjAUzNL1pStY-9qfiQY/s1600/TDA2030.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="422" data-original-width="524" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEisuRmDZOjF3ZFVyVRVhegO8KrCFpaijViL0jfh6lSvBS2fLk-ePfba8YkiCNNrn9D6399VF2oGCmRRAd4mwVsUwQg6kppy4OPJrrvAkvVa5QfdrPfrTmedNuhHHjAUzNL1pStY-9qfiQY/s1600/TDA2030.jpg" /></a></div>
Çok fazla açıklama gerektirmeyen, basit bir devre. Aktif hoparlör yapımında kullanılabilir.<br />
<br />
Stereo yapılacaksa, P1 potansiyometresi stereo seçilmelidir.<br />
<br />
Devrenin kazancını R4/R5 oranı belirler.<br />
<br />
<br />
<b><span style="font-size: x-small;">Kaynak : Elektor July/August 2001</span></b>Fırat Tarmanhttp://www.blogger.com/profile/04049964115264757037noreply@blogger.com0tag:blogger.com,1999:blog-7013354967270398657.post-23590241324259916402020-03-19T21:34:00.001+03:002020-03-19T21:36:47.553+03:00555 ile Açık-Kapalı Devreleri<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjAI8VGoN9WUmzEejErLkSEWLBcCyyWkR6cJjX8Ay0duAibd1QKvCB1SigepKh48Wh_NUhou5S8XfrT8Ovc_dj_fd9nAKOrYygNtPMES44Gw5BP0y9K0mK64cfAI25mVLnp5hKBR-7y7Ig/s1600/555+On-Off+Devresi+-+1.JPG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="443" data-original-width="542" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjAI8VGoN9WUmzEejErLkSEWLBcCyyWkR6cJjX8Ay0duAibd1QKvCB1SigepKh48Wh_NUhou5S8XfrT8Ovc_dj_fd9nAKOrYygNtPMES44Gw5BP0y9K0mK64cfAI25mVLnp5hKBR-7y7Ig/s1600/555+On-Off+Devresi+-+1.JPG" /></a></div>
<div class="separator" style="clear: both; text-align: left;">
<span style="font-family: "verdana" , sans-serif;">Bu devre ile S1 anahtarına her basıldığında rölenin durumu değişir ve o şekilde kalır. Devreye ilk gerilim verildiğinde rölenin hangi pozisyonda olması isteniyorsa, JP1 ile başlangıç durumu seçilebilir.</span></div>
<div class="separator" style="clear: both; text-align: left;">
<span style="font-family: "verdana" , sans-serif;"><br /></span></div>
<div class="separator" style="clear: both; text-align: left;">
<span style="font-family: "verdana" , sans-serif;">Aşağıdaki devre de benzer bir işleve sahip. LED'ler ile bir durum göstergesi de mevcut. Bu devrede hem normal 555, hem de CMOS versiyonu kullanılabilir.</span></div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiW4UA78ExP7M_uPcMy8xKZVfHgZBA-nZSE-MUpZ17VbRBq5QIBAlbfmMPqJs6l8h6sV28UEeApQT_EsSwGooLr08ecJ6-V6qCd9sMNjbFEX023hwGBoge9nnWwYAOY1OuWYbsdjpzIBPw/s1600/555+On-Off+Devresi+-+2.JPG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="478" data-original-width="490" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiW4UA78ExP7M_uPcMy8xKZVfHgZBA-nZSE-MUpZ17VbRBq5QIBAlbfmMPqJs6l8h6sV28UEeApQT_EsSwGooLr08ecJ6-V6qCd9sMNjbFEX023hwGBoge9nnWwYAOY1OuWYbsdjpzIBPw/s1600/555+On-Off+Devresi+-+2.JPG" /> </a></div>
<div class="separator" style="clear: both; text-align: left;">
<span style="font-size: x-small;"><span style="font-family: Verdana, sans-serif;"><b>Kaynak : Elektor</b></span></span> </div>
Fırat Tarmanhttp://www.blogger.com/profile/04049964115264757037noreply@blogger.com0tag:blogger.com,1999:blog-7013354967270398657.post-47062199735139349332020-02-09T13:52:00.000+03:002020-02-09T13:52:40.853+03:00Düşük gerilimli ampuller için çok basit bir dimmer<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgXTlN9_rNeLJdMfJQ0wX6FxKHiVEw1QE_X2ZuNlM7pDOxWRnbUwE_ZC1yVpOLUfF_LDseATqusHwvX1odXQPEk6p27ek_-glgaEIeFK-q4E7jQeS3BuW59hE_WuJyhIQjRVO8AKLpH4Oc/s1600/dimmer.JPG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="293" data-original-width="352" height="266" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgXTlN9_rNeLJdMfJQ0wX6FxKHiVEw1QE_X2ZuNlM7pDOxWRnbUwE_ZC1yVpOLUfF_LDseATqusHwvX1odXQPEk6p27ek_-glgaEIeFK-q4E7jQeS3BuW59hE_WuJyhIQjRVO8AKLpH4Oc/s320/dimmer.JPG" width="320" /></a></div>
<span style="font-family: Verdana, sans-serif;">Sadece bir Power-FET ve kondansatör ile düşük gerilimli lambaların parlaklık kontrolü kolayca yapılabilir. FET girişi neredeyse hiç akım çekmediğinden, C1 kondansatörünün dolup boşalması parlaklık düzeyini ayarlayacaktır.</span><span style="font-family: Verdana, sans-serif;"><br /></span>
<span style="font-family: Verdana, sans-serif;">C1 için iyi kaliteli ve kaçağı az bir kondansatör seçerseniz, ayarlanan parlaklık seviyesi saatler boyu korunabilir.</span><br />
<span style="font-family: Verdana, sans-serif;"><br /></span>
<span style="font-family: Verdana, sans-serif;">Kaynak : Elektor 2000-07/08</span>Fırat Tarmanhttp://www.blogger.com/profile/04049964115264757037noreply@blogger.com0tag:blogger.com,1999:blog-7013354967270398657.post-43094918622387011252019-12-22T00:35:00.000+03:002020-04-19T08:29:48.216+03:001.5V'tan 90V üretebilen devre<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEixNbvZYFRwRIJUWu1HDUttXJLX4EIS629OUDcsWtjDoZo1PM_aiQJtlvb5NSQUvlxfe66j0afKYAmbiYjiw7kiICwD1RWufFtXPFASKMKdgks_7SJfjcdHWZV-ySNdQ3CByHcgfidLbCQ/s1600/2019-12-22+1.5+volttan+90V.JPG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><span style="font-family: "verdana" , sans-serif;"><img border="0" data-original-height="415" data-original-width="617" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEixNbvZYFRwRIJUWu1HDUttXJLX4EIS629OUDcsWtjDoZo1PM_aiQJtlvb5NSQUvlxfe66j0afKYAmbiYjiw7kiICwD1RWufFtXPFASKMKdgks_7SJfjcdHWZV-ySNdQ3CByHcgfidLbCQ/s1600/2019-12-22+1.5+volttan+90V.JPG" /></span></a></div>
<span style="font-family: "verdana" , sans-serif;"><br /></span>
<span style="font-family: "verdana" , sans-serif;">Bu basit devre ile 1.5 voltluk bir pilden 90V elde edebilirsiniz. Bazı tüplü devrelerde bu gerilim gerekli olabiliyor. Birkaç miliamperden fazla yüklememek lazım tabii.</span><br />
<span style="font-family: "verdana" , sans-serif;"><br /></span>
<span style="font-family: "verdana" , sans-serif;">R2 ve R3'ün %1 toleranslı olmasına dikkat edin. Gerilimi yükselten parçalar bobin, diyotlar ve diğer pasif parçalar. MUR120 diyotları hızlı ve 200V gerilime dayanabilen diyotlar. Bobinin de kaliteli olmasına dikkat etmek lazım. Örnek olarak, "Coilcraft DO1608C-154" aratıp, özelliklerine bakabilirsiniz.</span><br />
<span style="font-family: "verdana" , sans-serif;"><br /></span>
<span style="font-family: "verdana" , sans-serif;">LT1073 1V'ta bile çalışmaya devam ediyor. Yukarıda da belirttiğim gibi, devreyi 3-4 mA'den fazla yüklemeyin.</span><br />
<span style="font-family: "verdana" , sans-serif;"><br /></span>
<span style="font-family: "verdana" , sans-serif;">Kaynak : Elektor</span>Fırat Tarmanhttp://www.blogger.com/profile/04049964115264757037noreply@blogger.com0tag:blogger.com,1999:blog-7013354967270398657.post-41021178814302752782019-12-06T17:50:00.001+03:002019-12-06T17:51:18.689+03:00200 mV Dijital Panelmetrelerin Ölçüm Aralığının Değiştirilmesi<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhYPSfB8PiO9LhppBJOXrM1VuKxqzx2Sarb8JnqhQiAZPDFIMf7c_RDtg9gLo7V3EGVrfUHhbzv5TTIvTnWX-eon4jFXM1SfWRZLbajN83Xl_H5GOEqMK_mHbSheQNY7ec9CbrYVWJrtFk/s1600/2019-12-06+%25C3%2596l%25C3%25A7%25C3%25BCm+%25C5%259Eemas%25C4%25B1.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><span style="font-family: Verdana, sans-serif;"><img border="0" data-original-height="408" data-original-width="650" height="400" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhYPSfB8PiO9LhppBJOXrM1VuKxqzx2Sarb8JnqhQiAZPDFIMf7c_RDtg9gLo7V3EGVrfUHhbzv5TTIvTnWX-eon4jFXM1SfWRZLbajN83Xl_H5GOEqMK_mHbSheQNY7ec9CbrYVWJrtFk/s640/2019-12-06+%25C3%2596l%25C3%25A7%25C3%25BCm+%25C5%259Eemas%25C4%25B1.jpg" width="640" /></span></a></div>
<span style="font-family: Verdana, sans-serif;">1999'a kadar sayabilen dijital panelmetreler bir zamanlar çok yaygındı. Amatör elektronikçilerin elinin altında 1-2 tane mutlaka duruyordur. Bu panelmetreler genelde 0 - 200 mV aralığında ölçüm yapabiliyorlar. Daha yüksek gerilimleri ölçmek ya da akım ölçmek için yukarıdaki basit gerilim bölücüyü kullanmak yeterli. R1 ve R2 dirençlerini uygun seçerek gerilim ve akım için geniş bir ölçüm aralığı seçilebilir. Ondalık noktayı doğru yere koymak size kalmış elbette.</span><br />
<span style="font-family: Verdana, sans-serif;"><br /></span>
<span style="font-family: Verdana, sans-serif;">Aşağıdaki tablo kullanılarak gerilim ve akım ölçüm aralıkları belirlenebilir. Akım ölçümlerinde R1 gerekmediği için onun yerine 0 Ohm yazdım.</span><br />
<span style="font-family: Verdana, sans-serif;"><br /></span>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgejmvxEGnj2CgOpSQUXukKUzLgyb-6M7ZxkYNFRXbvw68gSgSOV-INUr7cHIf0-19gonEM9FTd1tkMIFec2sPoRaYKfKNbwDO31gDv5l1KiRatu1n_uhwlfdelQtgQp6E79JnC7C6EAjY/s1600/2019-12-06+Tablo.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><span style="font-family: Verdana, sans-serif;"><img border="0" data-original-height="294" data-original-width="434" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgejmvxEGnj2CgOpSQUXukKUzLgyb-6M7ZxkYNFRXbvw68gSgSOV-INUr7cHIf0-19gonEM9FTd1tkMIFec2sPoRaYKfKNbwDO31gDv5l1KiRatu1n_uhwlfdelQtgQp6E79JnC7C6EAjY/s1600/2019-12-06+Tablo.jpg" /></span></a></div>
<div class="separator" style="clear: both; text-align: center;">
<span style="font-family: Verdana, sans-serif;"><br /></span></div>
<div class="separator" style="clear: both; text-align: left;">
<span style="font-family: Verdana, sans-serif;">Dikkat edilmesi gereken 1-2 nokta var;</span></div>
<div class="separator" style="clear: both; text-align: left;">
<span style="font-family: Verdana, sans-serif;"><br /></span></div>
<div class="separator" style="clear: both; text-align: left;">
<span style="font-family: Verdana, sans-serif;">- Devrenin izolasyonuna dikkat. Özellikle 200V ve 2000V ölçüm aralıklarında dirençler üzerinde tehlikeli gerilimler olacaktır.</span></div>
<div class="separator" style="clear: both; text-align: left;">
<span style="font-family: Verdana, sans-serif;"><br /></span></div>
<div class="separator" style="clear: both; text-align: left;">
<span style="font-family: Verdana, sans-serif;">- Akım ölçerken R2'nin üzerinde yaklaşık 0.2V kalacağını unutmamak lazım.</span></div>
<div class="separator" style="clear: both; text-align: left;">
<span style="font-family: Verdana, sans-serif;"><br /></span></div>
<div class="separator" style="clear: both; text-align: left;">
<span style="font-family: Verdana, sans-serif;">- Gerilim ölçümlerinde devrenin giriş direnci 1 megaohm civarında olacaktır. Çoğu ölçüm için yeterli olmakla birlikte, yüksek değerli dirençlerin olduğu devrelerde hesaba katmak gerekebilir.</span></div>
<div class="separator" style="clear: both; text-align: left;">
<span style="font-family: Verdana, sans-serif;"><br /></span></div>
<div class="separator" style="clear: both; text-align: left;">
<span style="font-family: Verdana, sans-serif;">- Yine 200/2000V ölçüm aralığında maruz kalınabilecek gerilimler dolayısı ile sıradan karbon dirençler uygun olmayabilir. Emin olamazsanız ya da uygun direnç bulamazsanız, R1 yerine aynı değeri sağlayacak birkaç direnci seri bağlayabilirsiniz.</span></div>
<br />Fırat Tarmanhttp://www.blogger.com/profile/04049964115264757037noreply@blogger.com0tag:blogger.com,1999:blog-7013354967270398657.post-18791430663247217282019-02-17T23:08:00.005+03:002022-09-29T14:12:21.364+03:00Orta Dalga Modülatör<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjsCi1JAh1Nkfmi7rZpjCWakWNRv5vVGzUlelh19v1LBb3rfaeVIJZzyMGHJIexswI78aY4WbPgnttiPNcnyMJ4XwMZbJ9ozKF4wIgYapGfHcXElBqkf7MvPPr8Ya4KNN2sRxZNfd8U3go/s1600/Orta+Dalga.JPG" style="margin-left: 1em; margin-right: 1em;"><span face="Verdana, sans-serif"><img border="0" data-original-height="513" data-original-width="607" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjsCi1JAh1Nkfmi7rZpjCWakWNRv5vVGzUlelh19v1LBb3rfaeVIJZzyMGHJIexswI78aY4WbPgnttiPNcnyMJ4XwMZbJ9ozKF4wIgYapGfHcXElBqkf7MvPPr8Ya4KNN2sRxZNfd8U3go/s1600/Orta+Dalga.JPG" /></span></a></div><p>
<span face="Verdana, sans-serif">Bu devre ile basit bir orta dalga verici yapabilirsiniz. Orta dalgada zaten pek istasyon kalmadığı için eski radyolarınız için yeni bir kullanım yolu olacaktır. Özellikle nostalji sevenler eski tüplü radyolarını bu devre sayesinde atıl kalmaktan kurtarabilir.</span><br />
<span face="Verdana, sans-serif"><br /></span>
<span face="Verdana, sans-serif">Müzik setinizin, MP3 çalarınızın ya da telefonunuzun çıkışını devrenin girişine bağlayarak müziği orta dalga eski radyonuzdan dinleyebilirsiniz. </span><br />
<span face="Verdana, sans-serif"><br /></span>
<span face="Verdana, sans-serif">Devrenin erişim mesafesi çok kısa, santimetreler ile ölçülüyor. Daha fazla mesafeye ulaşmak için daha güçlü devreleri denemelisiniz, bu devre sadece radyonun üzerine veya yanına koyup sesi aktarmak için.</span><br />
<span face="Verdana, sans-serif"><br /></span>
<span face="Verdana, sans-serif">X1, eski bir uzaktan kumandadan sökülerek de temin edilebilir.</span></p><p><span face="Verdana, sans-serif"> </span></p><p><span face="Verdana, sans-serif">Benim yaptığım basit bir prototipin fotoğrafı altta. </span></p><p><span face="Verdana, sans-serif"> </span></p><p><span face="Verdana, sans-serif"></span></p><div class="separator" style="clear: both; text-align: center;"><span face="Verdana, sans-serif"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh3w0dHESBTXtgnEPJP7QZDBiEfWMIN92xSnk8IdivsVWyGJG3h6SOyVvSbbmLocB1X68kpPlalCiaeh2wLq5HTR9f3ecFsjaAkipznaHhuSGnACVv_Rza3L084Ril_4xSaQJP3ungcEuo6s54eXwDF0UHyJWaHRkFZ-ThXtesDIO-5W1x7QOh_p47h/s4000/IMG_20220605_112143.jpg" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="2250" data-original-width="4000" height="360" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh3w0dHESBTXtgnEPJP7QZDBiEfWMIN92xSnk8IdivsVWyGJG3h6SOyVvSbbmLocB1X68kpPlalCiaeh2wLq5HTR9f3ecFsjaAkipznaHhuSGnACVv_Rza3L084Ril_4xSaQJP3ungcEuo6s54eXwDF0UHyJWaHRkFZ-ThXtesDIO-5W1x7QOh_p47h/w640-h360/IMG_20220605_112143.jpg" width="640" /></a></span></div><p><span face="Verdana, sans-serif"></span></p><p><span face="Verdana, sans-serif"> </span></p><p><span face="Verdana, sans-serif">Konu ile ilgili videoyu aşağıdaki bağlantıyı kullanarak izleyebilirsiniz.<br /> </span></p><div class="separator" style="clear: both; text-align: center;"><iframe allowfullscreen="" class="BLOG_video_class" height="443" src="https://www.youtube.com/embed/PHYi75Gwdg0" width="532" youtube-src-id="PHYi75Gwdg0"></iframe></div><br /><br />
<span face="Verdana, sans-serif"><br /></span>
<span face="Verdana, sans-serif">Kaynak : Elektor</span><br />
<span face="Verdana, sans-serif"><br /></span>
<br /><p></p><p></p>Fırat Tarmanhttp://www.blogger.com/profile/04049964115264757037noreply@blogger.com0tag:blogger.com,1999:blog-7013354967270398657.post-15414403685958240122019-02-17T22:53:00.001+03:002019-02-17T22:53:29.237+03:00Dokunmatik Tuş<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjXv4p-sNJsaO0wcDElWKiLcHVcjyvjwqrtIHcMq0H5oCAgNbY0ChhQWvRX8qnm61te7GDgP8LIJ1vNmLsvaoqmXehBJ7vvLX86N7Nqt_FLItzgOHinoFPYnMn0agcxdVFnD21llKP4DzI/s1600/One+Wire+Touch.JPG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><span style="font-family: Verdana, sans-serif;"><img border="0" data-original-height="504" data-original-width="487" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjXv4p-sNJsaO0wcDElWKiLcHVcjyvjwqrtIHcMq0H5oCAgNbY0ChhQWvRX8qnm61te7GDgP8LIJ1vNmLsvaoqmXehBJ7vvLX86N7Nqt_FLItzgOHinoFPYnMn0agcxdVFnD21llKP4DzI/s1600/One+Wire+Touch.JPG" /></span></a></div>
<span style="font-family: Verdana, sans-serif;">Bu basit devre ile dokunmatik bir tuş yapılabilir. Metal plakaya dokunulduğu sürece LED yanacaktır. Entegrenin çıkışı LED yerine başka bir devreyi sürmek üzere kullanılabilir.</span>Fırat Tarmanhttp://www.blogger.com/profile/04049964115264757037noreply@blogger.com0tag:blogger.com,1999:blog-7013354967270398657.post-42966918842524096822019-02-17T22:46:00.000+03:002019-02-17T22:46:57.665+03:00Tek Tuş İle Açık/Kapalı Devresi<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj-QhcjdrSehUuoHo7Hd4MYcZqGOgfNy6mLKXImDnq6GRDdkIRlZGBFwLUzz6-30oJZl9XIOtQz_DY2_FcD_X7K6yhyphenhyphenimnM5lP0pt8f59o44MrG5i_y7E6zn_cdpDPtokpr6daRzTBh2Xg/s1600/On+Off+Button.JPG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><span style="font-family: Verdana, sans-serif;"><img border="0" data-original-height="484" data-original-width="572" height="539" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj-QhcjdrSehUuoHo7Hd4MYcZqGOgfNy6mLKXImDnq6GRDdkIRlZGBFwLUzz6-30oJZl9XIOtQz_DY2_FcD_X7K6yhyphenhyphenimnM5lP0pt8f59o44MrG5i_y7E6zn_cdpDPtokpr6daRzTBh2Xg/s640/On+Off+Button.JPG" width="640" /></span></a></div>
<div class="separator" style="clear: both; text-align: left;">
<span style="font-family: Verdana, sans-serif;">Bu devre ile tek bir butona basılarak bir röle açılıp kapatılabilir. Her basışta röle açık ya da kapalı konum arasında durum değiştirir.</span></div>
<div class="separator" style="clear: both; text-align: left;">
<span style="font-family: Verdana, sans-serif;"><br /></span></div>
<div class="separator" style="clear: both; text-align: left;">
<span style="font-family: Verdana, sans-serif;">Devreye ilk elektrik verildiğinde rölenin hangi konumda olacağını belirlemek için JP1 kullanılır.</span></div>
<br />Fırat Tarmanhttp://www.blogger.com/profile/04049964115264757037noreply@blogger.com0tag:blogger.com,1999:blog-7013354967270398657.post-80831875171124122272019-02-17T17:11:00.000+03:002019-02-17T17:11:13.986+03:004011 ile negatif gerilim üreteci<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgR8byn0thFEz_mH5nUc55B_eXzQY3rNKtvGjyJtZM9XDQE-j8gGDEQFSH-nYcx0Hu6aiY9_mi_hR1uaTRPju6HXxzz2o6D3m9jk4RDM9kz9o0QVdEqFrEJH9LqDxLC1A59X0mugFtULkA/s1600/Eksi+G%25C3%25BC%25C3%25A7.JPG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><span style="font-family: Verdana, sans-serif;"><img border="0" data-original-height="385" data-original-width="490" height="500" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgR8byn0thFEz_mH5nUc55B_eXzQY3rNKtvGjyJtZM9XDQE-j8gGDEQFSH-nYcx0Hu6aiY9_mi_hR1uaTRPju6HXxzz2o6D3m9jk4RDM9kz9o0QVdEqFrEJH9LqDxLC1A59X0mugFtULkA/s640/Eksi+G%25C3%25BC%25C3%25A7.JPG" width="640" /></span></a></div>
<div class="separator" style="clear: both; text-align: left;">
<span style="font-family: Verdana, sans-serif;"><br /></span></div>
<span style="font-family: Verdana, sans-serif;">Bazı devrelerde negatif bir beslemeye de ihtiyaç duyulabiliyor. Negatif besleme sadece birkaç mA çekecek ise, bu basit devre ile pozitif gerilim kaynağından negatif gerilim elde edilebilir.</span><br />
<span style="font-family: Verdana, sans-serif;"><br /></span>
<span style="font-family: Verdana, sans-serif;">Sadece 4011 çıkışları kullanıldığından, negatif taraftan çekilen akımın 10 mA civarından daha fazla olmamasına dikkat edilmelidir.</span><br />
<span style="font-family: Verdana, sans-serif;"><br /></span>
<span style="font-family: Verdana, sans-serif;">Kaynak : Elektor</span>Fırat Tarmanhttp://www.blogger.com/profile/04049964115264757037noreply@blogger.com0tag:blogger.com,1999:blog-7013354967270398657.post-53809753172605945112018-02-28T00:40:00.001+03:002018-02-28T13:19:13.127+03:001 Hz Üreteci<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiQqW_uWMIpjJgnRO-mHAgEAXwhoH6lZx9odw7fcx40ZgkIqLqQb3t_BCyhZt2iUdX8ffhQKeeN2_0Osa0xODUyfKsUgmRe7sMD3lZ5II1cLzI3vf-drAriYY6oV1y9XubRccGX8U629h0/s1600/timebase.JPG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="456" data-original-width="775" height="376" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiQqW_uWMIpjJgnRO-mHAgEAXwhoH6lZx9odw7fcx40ZgkIqLqQb3t_BCyhZt2iUdX8ffhQKeeN2_0Osa0xODUyfKsUgmRe7sMD3lZ5II1cLzI3vf-drAriYY6oV1y9XubRccGX8U629h0/s640/timebase.JPG" width="640" /></a></div>
<br />
32.768 kHz'lik, piyasada en çok bulunan kristal ile 1 Hz elde etmek.<br />
<br />
KAYNAK : Nuts & Volts, 2006/01Fırat Tarmanhttp://www.blogger.com/profile/04049964115264757037noreply@blogger.com0tag:blogger.com,1999:blog-7013354967270398657.post-65867507593730027962018-02-28T00:27:00.001+03:002018-02-28T00:27:47.720+03:00Genel Amaçlı Termostat<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgI7HVKnOrFdGbZUTqZmA51jRgTkLVvTWmbuu_kt51L9MKzHH2CLO4X2xTBKIU-a_ybD4QdCmdbV_vzP1KEboT9A-B96TI-jC2u4aaVPVouUmFHq-iDAPrXwCPzrWeVBDcMLvKI3fiIB7E/s1600/Termostat+Son.jpg" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"><span style="font-family: Verdana, sans-serif;"><img border="0" data-original-height="407" data-original-width="778" height="332" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgI7HVKnOrFdGbZUTqZmA51jRgTkLVvTWmbuu_kt51L9MKzHH2CLO4X2xTBKIU-a_ybD4QdCmdbV_vzP1KEboT9A-B96TI-jC2u4aaVPVouUmFHq-iDAPrXwCPzrWeVBDcMLvKI3fiIB7E/s640/Termostat+Son.jpg" width="640" /></span></a></div>
<span style="font-family: Verdana, sans-serif;">Bu devre ile ısıtıcı vasıtası ile herhangi bir ortamın, nesnenin vb. ısısı sabit tututabilir (örneğin bir akvaryum, oda vb.). Isıtıcı burada 12V'a bağlıysa da, röle kontakları vasıtası ile şebeke voltajı da kullanılabilir.</span><br />
<span style="font-family: Verdana, sans-serif;"><br /></span>
<span style="font-family: Verdana, sans-serif;">Termistör olarak 2k'lık bir NTC uygun olacaktır.</span><br />
<span style="font-family: Verdana, sans-serif;"><br /></span>
<span style="font-family: Verdana, sans-serif;">KAYNAK : Nuts & Volts, 2006/01</span>Fırat Tarmanhttp://www.blogger.com/profile/04049964115264757037noreply@blogger.com0tag:blogger.com,1999:blog-7013354967270398657.post-19670353146826341852018-01-14T20:09:00.000+03:002018-01-14T20:09:25.308+03:00Elektronik Zar<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg7fglffjn1TxIwLkz9PTG76AMJ8fdFlzz9FJnXwj1c00D__p7yJDZnZOhwdkafjY_97w74sebTACNSyHGkI-xG8vFprQd8fNUzysBHbzI-DCJJbTR7j5Ml1GPaZ5E3Uo-hquhN1zCRBp0/s1600/zar-1.JPG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><span style="font-family: Verdana, sans-serif;"><img border="0" data-original-height="326" data-original-width="887" height="235" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg7fglffjn1TxIwLkz9PTG76AMJ8fdFlzz9FJnXwj1c00D__p7yJDZnZOhwdkafjY_97w74sebTACNSyHGkI-xG8vFprQd8fNUzysBHbzI-DCJJbTR7j5Ml1GPaZ5E3Uo-hquhN1zCRBp0/s640/zar-1.JPG" width="640" /></span></a></div>
<span style="font-family: Verdana, sans-serif;"><br /></span>
<span style="font-family: Verdana, sans-serif;">Bu basit devre ile elektronik ve dokunmatik bir zar yapılabilir. Dokunma noktasına parmağınızla dokunduğunuzda sayaç yaklaşık 2 kHz hızla çalışır ve bütün LED'ler yanar. Parmağınızı çektiğinizde 6 olası durumdan bir tanesi rastgele olarak gösterilir.</span><br />
<span style="font-family: Verdana, sans-serif;"><br /></span>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiXyrNgoAp5gL-dOKaAtSyycVyF78sPOkCipv9p8CSSVPFn_ImDw3Yyc9bCgmlULFRYcG0Rumw7r90fzdO5fGIiB1mFIxa33dFlRMrVZ4nBWDCCKSHmqFbOUqNnOs0s6E-PiIVAGkJgd3Y/s1600/zar-2.JPG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><span style="font-family: Verdana, sans-serif;"><img border="0" data-original-height="232" data-original-width="345" height="215" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiXyrNgoAp5gL-dOKaAtSyycVyF78sPOkCipv9p8CSSVPFn_ImDw3Yyc9bCgmlULFRYcG0Rumw7r90fzdO5fGIiB1mFIxa33dFlRMrVZ4nBWDCCKSHmqFbOUqNnOs0s6E-PiIVAGkJgd3Y/s320/zar-2.JPG" width="320" /></span></a></div>
<span style="font-family: Verdana, sans-serif;">LED'lerin yerleşimi üstteki şekilde yapılmalıdır.</span><br />
<span style="font-family: Verdana, sans-serif;"><br /></span>
<span style="font-family: Verdana, sans-serif; font-size: x-small;"><b>Kaynak :</b> Electronics Projects Volume 26</span><br />
<span style="font-family: Verdana, sans-serif;"><br /></span>
<br />Fırat Tarmanhttp://www.blogger.com/profile/04049964115264757037noreply@blogger.com0tag:blogger.com,1999:blog-7013354967270398657.post-65275417996353709872015-04-07T22:54:00.003+03:002015-04-07T23:01:37.414+03:00İlginç bir 1Hz üreteci<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh29kjoPBF_Kujeu9Suo7KGDa8vN64JC8nHFQ6MpnHpKchNysHE6P_fb2FrXG89yMyJF73B36PEZIzATHpBJHgalnMuirQjTcPzbZtN2GV8-KXDsWxcdSEAenz94l1Mmg37ZX6yHansnAc/s1600/2015-04-07+1HZ+with+4017.JPG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><span style="font-family: Verdana, sans-serif; font-size: large;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh29kjoPBF_Kujeu9Suo7KGDa8vN64JC8nHFQ6MpnHpKchNysHE6P_fb2FrXG89yMyJF73B36PEZIzATHpBJHgalnMuirQjTcPzbZtN2GV8-KXDsWxcdSEAenz94l1Mmg37ZX6yHansnAc/s1600/2015-04-07+1HZ+with+4017.JPG" /></span></a></div>
<div class="separator" style="clear: both; text-align: left;">
<span style="font-family: Verdana, sans-serif; font-size: large;">İlginç tasarımlı bu devre ile, cihazınızın içindeki transformatörden 50 Hz'i alabilir ve bölerek 1 Hz elde edebilirsiniz. 4017'nin girişleri oldukça hassastır. Devrenizin besleme kaynağının bir transformatör olması gereklidir. "Anten" olarak kullanılan teli transformatöre yaklaştırdığınızda, D1 LED'inin yanıp sönmeye başladığını göreceksiniz. Transformatöre teli değdirmeyin ve LED'in yanıp söndüğü en uzak konumu bulmaya çalışın. </span></div>
<div class="separator" style="clear: both; text-align: left;">
<span style="font-family: Verdana, sans-serif; font-size: large;"><br /></span></div>
<div class="separator" style="clear: both; text-align: left;">
<span style="font-family: Verdana, sans-serif; font-size: x-small;"><b>Kaynak : Elektor 2003/07-08</b></span></div>
<br />Fırat Tarmanhttp://www.blogger.com/profile/04049964115264757037noreply@blogger.com0tag:blogger.com,1999:blog-7013354967270398657.post-15998026735264922382015-04-05T21:38:00.000+03:002020-05-23T17:12:11.015+03:0030 LED ile termometre<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEglgg7A6OCQgXglbA5cpEgPHibpwcpT9W8fo85Wfq1ogVnKVKZeAaactqBv6ZmUBcepDF_yvpTr3O2G3BBpuVpctOeoWyqY50BRdsxYc2Heh6hjD-rzFoccBUPbSmJz1nu5isuGyC2l8Vs/s1600/LM3914l%C3%BC+Termometre.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><span style="font-family: "verdana" , sans-serif; font-size: large;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEglgg7A6OCQgXglbA5cpEgPHibpwcpT9W8fo85Wfq1ogVnKVKZeAaactqBv6ZmUBcepDF_yvpTr3O2G3BBpuVpctOeoWyqY50BRdsxYc2Heh6hjD-rzFoccBUPbSmJz1nu5isuGyC2l8Vs/s1600/LM3914l%C3%BC+Termometre.jpg" /></span></a></div>
<div class="separator" style="clear: both; text-align: left;">
<span style="font-family: "verdana" , sans-serif; font-size: large;">Bu devrenin yukarıdaki çizimi ile 9-39 derece arası sıcaklıkları ölçmek mümkündür. Potansiyometrelerin üst uçlarındaki gerilimler, şemada gösterilen değerlere ayarlanmalıdır. LM35DZ, 10 mV/C çıkış verir ve ayar gerektirmez.</span></div>
<div class="separator" style="clear: both; text-align: left;">
<span style="font-family: "verdana" , sans-serif; font-size: large;"><br /></span></div>
<div class="separator" style="clear: both; text-align: left;">
<span style="font-family: "verdana" , sans-serif; font-size: large;">Bu şemada her 1 derece için bir LED yanmaktadır. Referans gerilimleri potansiyometreler ile ayarlayarak (çok turlu kullanın) değişiklikler yapabilirsiniz. Örneğin ben 15-30 derece aralığında ve 0.5 derece hassasiyette yaptım. Bunun için gerilimleri aşağıdan yukarıya 150, 195, 245 ve 295 milivolt'a ayarlamak yeterli (bu gerilimleri 10'a böldüğünüzde gösterilecek dereceyi bulursunuz).</span></div>
<div class="separator" style="clear: both; text-align: left;">
<span style="font-family: "verdana" , sans-serif; font-size: large;"><br /></span></div>
<div class="separator" style="clear: both; text-align: left;">
<span style="font-family: "verdana" , sans-serif; font-size: large;">Devre "bar" modunda çalışıyor (gösterilen değerin altındaki tüm LED'ler yanıyor). Tek tek LED'lerin yandığı "dot" modunda çalıştırmak istiyorsanız, sadece 9 no'lu bacaktan modu değiştirmek yeterli olmuyor. LM3914'ün "datasheet" dökümanında neler yapılması gerektiği anlatılıyor, oraya bakmanızı öneririm.</span></div>
<div class="separator" style="clear: both; text-align: left;">
<span style="font-family: "verdana" , sans-serif; font-size: large;"><br /></span></div>
<div class="separator" style="clear: both; text-align: left;">
<span style="font-family: "verdana" , sans-serif; font-size: large;">10'lu LED modülleri yerine, tek tek LED'leri de kullanabilirsiniz. LED'leri aynı tipte seçerseniz daha iyi olur, parlaklık farkı oluşmaz. Parlaklık 2.2k'lık dirençler ile değişmektedir. Bu dirençlerin değeri ile oynayarak denemeler yapabilirsiniz.</span></div>
<div class="separator" style="clear: both; text-align: left;">
<span style="font-family: "verdana" , sans-serif; font-size: large;"><br /></span></div>
<div class="separator" style="clear: both; text-align: left;">
<span style="font-family: "verdana" , sans-serif; font-size: large;">Benim ölçümlerimde tüm LED'ler yanarken devre yaklaşık 160 mA çekiyordu (9V besleme).</span></div>
Fırat Tarmanhttp://www.blogger.com/profile/04049964115264757037noreply@blogger.com0tag:blogger.com,1999:blog-7013354967270398657.post-92035706797887249232015-04-04T01:43:00.000+03:002020-04-16T09:06:10.705+03:00Kristal Test Cihazı<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjPa9S_4zH4NYdTqOiSE6108p4t5OoV3uPOCscP7tgbN3qaqXVIRTtnV107WlRFahfzPl3gkG7fXIXldcCv3wmkpkIltd2qvT5IAjV4_Qzi_dwM5wVUHassUvNwE7QYfbSxUEOyOAuKSCI/s1600/2015-04-04+Kristal+Test.JPG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjPa9S_4zH4NYdTqOiSE6108p4t5OoV3uPOCscP7tgbN3qaqXVIRTtnV107WlRFahfzPl3gkG7fXIXldcCv3wmkpkIltd2qvT5IAjV4_Qzi_dwM5wVUHassUvNwE7QYfbSxUEOyOAuKSCI/s1600/2015-04-04+Kristal+Test.JPG" /></a></div>
<span style="font-family: "verdana" , sans-serif; font-size: large;"><br /></span>
<span style="font-family: "verdana" , sans-serif; font-size: large;">Son derece basit ve sadece kristalin çalışıp çalışmadığını gösteren bir devre. 1-50 MHz arasında tüm frekanslardaki kristaller test edilebilir. Kristal sağlam ise T1 ile oluşturulan osilatör çalışacak ve LED yanacaktır.</span><br />
<br />
<span style="font-family: "verdana" , sans-serif; font-size: large;">Hızlıca yaptığım bir deneme devresi aşağıda. Kristali takabilmek için 8'li bir entegre soketi de ekledim. Ancak elimde BF494 olmadığı için mevcut olan BF199'u kullandım. Bu durumda 20 Mhz üzerindeki kristallerde devre çalışmadı. BC serisi transistörler de aynı sıkıntıyı yaratır. O yüzden BF494 veya eşleniğini kullanmak daha doğru olur.</span><br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhsQg_um4rqyt-4d1iLn8ieDlq_Yjrzhsl9EQ8OX_NUBN9vAsfVtTWkPlFsPD4rpNn4PJztldgQGGT3f914gYDDkACLn0wzS8dm8CBFcC037i9W6mAcYqJcMPphVlnLV0SaGg4C3Ams6Is/s1600/IMG_20200407_183323.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="789" data-original-width="768" height="640" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhsQg_um4rqyt-4d1iLn8ieDlq_Yjrzhsl9EQ8OX_NUBN9vAsfVtTWkPlFsPD4rpNn4PJztldgQGGT3f914gYDDkACLn0wzS8dm8CBFcC037i9W6mAcYqJcMPphVlnLV0SaGg4C3Ams6Is/s640/IMG_20200407_183323.jpg" width="622" /></a></div>
<span style="font-family: "verdana" , sans-serif; font-size: large;"><br /></span>
<span style="font-family: "verdana" , sans-serif; font-size: x-small;"><b>Kaynak : Elektor 2009/07-08</b></span>Fırat Tarmanhttp://www.blogger.com/profile/04049964115264757037noreply@blogger.com0tag:blogger.com,1999:blog-7013354967270398657.post-88459451568197342292015-03-10T19:12:00.002+02:002020-04-04T13:02:03.914+03:0040W Amplifikatör (TDA2030)<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgRhQQs7j_FW5DBLNgu1x4iY_3hzJn-khBLC2BqYrvc0COgr5y4fXO9TPxDAa0QqcHRiym_lO5BPNLj71wHQQ-wPxQrFS2ExJe81MJ6ib0ctUIf3RE7Gz0bh8ASxs9hfsfbyzwZLZASQis/s1600/2015-03-10+40W.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgRhQQs7j_FW5DBLNgu1x4iY_3hzJn-khBLC2BqYrvc0COgr5y4fXO9TPxDAa0QqcHRiym_lO5BPNLj71wHQQ-wPxQrFS2ExJe81MJ6ib0ctUIf3RE7Gz0bh8ASxs9hfsfbyzwZLZASQis/s1600/2015-03-10+40W.jpg" /></a></div>
<div class="separator" style="clear: both; text-align: center;">
<br /></div>
<div class="separator" style="clear: both; text-align: left;">
<span style="font-family: "verdana" , sans-serif; font-size: large;">Bu basit devre ile 4 Ohm hoparlör ile 40W alınabilir. 8 Ohm ile çıkış yaklaşık 22W'tır. Çıkış gücü 2W'a ulaşıncaya kadar çıkışı entegre devre verir, daha yüksek güçlerde transistörler devreye girer.</span></div>
<div class="separator" style="clear: both; text-align: left;">
<span style="font-family: "verdana" , sans-serif; font-size: large;"><br /></span></div>
<div class="separator" style="clear: both; text-align: left;">
<span style="font-family: "verdana" , sans-serif; font-size: large;">Besleme geriliminin 44V'u aşmamasına özen gösterilmelidir. Girişe 3.15 A bir sigorta takılmalıdır.</span></div>
<div class="separator" style="clear: both; text-align: left;">
<span style="font-family: "verdana" , sans-serif; font-size: large;"><br /></span></div>
<div class="separator" style="clear: both; text-align: left;">
<span style="font-family: "verdana" , sans-serif; font-size: x-small;"><b>Kaynak : Elektor 1992 </b></span></div>
<br />Fırat Tarmanhttp://www.blogger.com/profile/04049964115264757037noreply@blogger.com0