25 Mayıs 2015 Pazartesi

İşiniz için doğru sunucu: Dedicated mı, Cloud mu, Hybrid mi?

İşiniz için doğru sunucu: Dedicated mı, Cloud mu, Hybrid mi?

İşinizin hızına ayak uydurabilecek, tüm yükünü taşıyabilecek, en önemlisi işiniz ile aynı kafada olacak sunucuyu kurgulamak kolay iş değil. Bu konuyla ilgili kafanızda bir çok soru dolaştığını biliyoruz:

“Kiralasak mı, satın mı alsak?”, “Ucuz fiyat düşük performans mı demek?”, “Yedekleme yapısı nasıl olmalı?”, “Hangi lisansları almak lazım?”, “Yapılacak yatırım, işi ne kadar süre taşıyacak?”, “Sunucuyu kim yönetmeli?”, “Peki ya bilgi güvenliği?” gibi...

Tüm bu sorulara doğru cevapları bulmanın yolu, işi bir bilene sormaktan geçiyor. Bu işin bir bileni ise, yetkinliğini kanıtlamış, deneyimli bir Veri Merkezi. 

Türkiye’de ilklerden biri olan Radore, doğru sunucu kurgulama aşamasında potansiyel müşterilerine özel yaklaşım geliştiren bir Veri Merkezi.
Radore’nin amacı müşterisinin işi için doğru sunucuya, müşterisiyle birlikte karar vermek.

Radore Veri Merkezi’nin çözüm odaklı bu yaklaşımında, Radore proje yöneticileri ve sistem mühendisleri daha işin başında devreye giriyor ve hiç bir ücret talep etmeden önerilerde bulunuyor.

Radore’nin bu profesyonel kadrosu ile işinize en uygun sunucuyu birlikte belirlemek için, tek yapmanız gereken işinizle ilgili kısaca bilgi vereceğiniz bir form doldurmak. Radore Veri Merkezi’nin profesyonel ekibi, paylaştığınız bilgileri derhal inceliyor ve en kısa sürede sizinle iletişime geçiyor.

Radore Veri Merkezi, işinizin özelliklerine ve ihtiyaçlarına göre çözümler öneriyor.
Örneğin esnek biçimde artırıp azaltılabilen sistem kaynakları, size özel ve yedekli bir altyapı, ayrıca yedekleme sistemine sahip bir sistem arıyorsanız, Cloud çözümlerini tercih etmenizi öneriyor.

İşiniz için ileri seviye CMS uygulaması, yüksek kaynak kullanımı gerektiren uygulamalar ve kendinize ait private cloud altyapısı kurmak ve ayrıca streaming yapabilmek içinse, Dedicated Sunucu altyapısını öneriyor.

Bir Veri Merkezi olarak Radore’yi farklılaştıran özelliklerden biri de uzun yıllardır Intel ile yaptığı ortak çalışmalar. INTEL DCM çözümü ile enerji tüketimi ve ısı üretimini canlı olarak takip ediliyor ve enerji verimliliği sağlanıyor. INTEL TXT çözümü ile klasik anti-virüs yazılımlarının ulaşamadığı donanım seviyesinde dahi her türlü Rootkit saldırılarına karşı tüm fiziksel sunucularınız koruma altına alınıyor. Yeni nesil INTEL XEON işlemcileri, iCAS destekli INTEL SSD teknolojileri ve yeni nesil INTEL 10GbE NIC kartları ile yüksek hız ve performans sunuluyor.

Radore Veri Merkezi, Jet Destek hizmeti ile 7/24 Müşteri Hizmeti veriyor. Radore’nin Uptime Garantisi ise %99,99* gibi çok yüksek bir oran.
100 Mbit/s Paylaşımsız ve Kotasız İnternet** ve Donanım Garantisi, Radore’nin müşterilerine sunduğu diğer ayrıcalıklar arasında.

* Yedekli enerji ve internet erişim hizmetinin dâhil olmadığı projelerde internet servis sağlayıcılarından kaynaklanan kesintiler Uptime Garantisi kapsamı dışındadır.
** Fiziki sunucu kiralama hizmeti dahilinde sunulur. 

Sunucunuzun işinizle aynı kafada olması gerekir; beden ile kafa uyuşmazsa sistem sorunları kaçınılmaz olur.

Her işin kendine özgü bir yükü vardır. Kimi sunucular az yük için fazla olabilir. Ama asıl sorun, işinizin tüm yükünü kaldırabilecek bir sunucuya sahip olmadığınızda ortaya çıkar.

Hız, bir çok iş için vazgeçilmez bir özelliktir. Sizin de işinizin hıza ihtiyacı varsa, bu hıza ayak uydurabilecek bir sunucuya da ihtiyacınız var demektir. Yanlış bir sunucu seçimi, sizi yavaşlatabilir; bu da bir çuval inciri berbat etmek demektir.

Radore Veri Merkezi, yenilenen yapısı ve her zaman olduğu gibi en yeni teknolojilere sahip altyapısı ile 11 yıldır Türkiye’nin önde gelen kurumlarına hizmet veriyor.

Radore Veri Merkezi’nde en ufak detaya kadar her şey kontrol altında.

 

Bir boomads advertorial içeriğidir.

11 Mayıs 2015 Pazartesi

Doğuş Otomotiv Trafik Hayattır!

Direksiyon başında mesajlaşmayın, güvenliğinizi riske atmayın.  
Trafik Hayattır!

Gelişen teknoloji sayesinde günlük işlerimizin birçoğunu cep telefonları üzerinden yapmak hem hayatımızı kolaylaştırıyor hem de cep telefonuna olan bağımlılığımızı giderek arttırıyor. Bu bağımlılık trafikte ise önemli bir tehlike unsuru yaratıyor.

Araç kullanırken cep telefonuyla mesajlaşmak veya konuşmak sadece sürücü güvenliğini değil, yaya güvenliğini de tehlikeye atan en büyük hatalardan biri olarak gösteriliyor. Yapılan bir araştırmaya göre cep telefonuyla mesajlaşan veya konuşan bir sürücünün sarhoş bir sürücü ile aynı tepkileri verdiği öne sürülüyor. Tüm bu sebeplerden ötürü Doğuş Otomotiv’in kurumsal sorumluluk platformu Trafik Hayattır cep telefonu kullanımı konusuna dikkat çekerek, toplumu bilinçlendirmeyi hedefliyor.

Trafik güvenliği bilincini toplumun tüm kesimlerine yaymak için faaliyetlerini sürdüren Trafik Hayattır, 4 ana mesaj üzerinden farkındalık yaratmayı hedefliyor. Bu kapsamda, platform aşırı hız, bebek koltuğu kullanımı, emniyet kemeri gibi trafik güvenliği stratejik mesajlarına son yıllarda ‘cep telefonu’ kullanımını da ekledi. Trafik Hayattır cep telefonu kullanımına dikkat çeken dergi ve gazete ilanlarına ek olarak, yeni animasyon serisindeki animasyonlarla da cep telefonu kullanımının risklerini esprili şekilde aktarıyor.

Bir boomads advertorial içeriğidir.

13 Şubat 2015 Cuma

Arduino Projem - Diyotlar Hakkında Ufak Bilgiler

Elektrik akımını tek yönde geçiren yarı iletken elekktronik bir malzemedir .Diyotların anod ve katod olmak üzerek iki ucu vardır. Bunlardan biri negatif diğeri ise pozitif kutuptur. Yani bacaklar arasında farklılıklar vardır. Bu yüzden kullanılan devrede yönünün doğru belirlenip devreye uygun bağlanması önemlidir.

Yapısı:


Diyotun iç yapısına bakacak olursak p-n maddesi ve katkı maddesinden oluşur. P maddesi içerde + kutubu  N madesi ise - kutubu meydana getirir. Ortasında bulunan katkı maddesi ise + ve - kutuplarını beraber bulundurur. Yani bir bakıma orta bölümünde kutuplaşma yerine bir nötrleşme olur. Dediğimiz gibi bu bölge + ve - kutupları içersinde düzenli bir şekilde bulundurduğu için orda bir gerilim oluşur. Bu gerilim diyotun standart devreye verdiği bir katalogsal değerdir. Kullandığımız diyota göre 0.3 volt veya 0.7 volt gibi değerler olabilir.













Diyot Çeşitleri :

  1. Diyot
  2. Zener Diyot
  3. Tunel Diyot
  4. Varikap Diyot
  5. Schottky Diyot
  6. İnfraruj Diyot
  7. Foto Diyot
  8. Optokuplör
Daha ayrıntılı olarak incelemek isterseniz bu sayfayı ziyaret edebilirsiniz.

Diyotların Kullanım Amaçları :

  1. Dalgaların doğrultulması işleminde
  2. Filtreleme işlemlerinde
  3. Gerilim ikileyici işlemlerinde
  4. Kırpma işlemlerinde
  5. Limitleyicilerde
  6. Koruma devrelerinde

10 Şubat 2015 Salı

Arduino Projem - Step Motorlar Hakkında

Adından da anlaşılacağı gibi adım adım çalışan motorlardır. Satın alınan motorun katalogsal değerinde adım genişliği vardır. Yani 360 dereceyi kaç adımda tamamlayacağı önceden bellidir. Dışarıdan hiç bir etkiyle adım sayısı değiştirilemez. Adım açısı denen kavram 360/n den çıkar. Buradaki n sayısı 360 dereceyi kaç adımda aldığını gösterir.

Step Motor Nasıl Çalışır ?
















1 den 5 e kadar numaralandırılmış sargılar sw ( switch ) yardımıyla elektrik ile beslenip kutuplandırılırlar. Palse ile adlandırılmış ucu iğneyi anımsatan yapı kutup kazandırılan sargılar ile kendilerine çektirilir. Yani bir bakıma 1 den başlayarak 5 e kadar yavaş yavaş veya hızlı olarak haraket eder. Step motorun temel olarak çalışma mantığı bu şekildedir.

Step motorun hızının ayarlanmasıda aslında anahtarlama frekansı ile alakalıdır. Yukarıda bir step motorun çalışma mantığını anlatmıştık ve burda ki hareketi switchlerin sıralı seçiminle olduğunu dile getirmiştik. Yani burada sıralı anahtarlama işlemini ne kadar çok yaparsak motorumuz o kadar dönecektir. Buda aslında bize bir ipucu vermektedir. Step motorun anahtarlama sayısını yani anahtarlama frekansını arttırırsak motorumuzda bize daha çabuk tepki vermeye başlar ve daha hızlı döner.

Step Motor Sürücü Devre Şeması


















8 Şubat 2015 Pazar

Arduino Projem - Servo Motorlar Hakkında

Servo motorlar , içersinde bir kontrol devresi bulunduran buna göre hata sinyali gönderip istenilen konumda bulunan bir motor türüdür . Eskiden sadece doğru akım motoru olarak üretilsede daha sonra üretilen yüksek güçlü kaliteli tristörler ile alternatif akım motoru olarakta üretilmeye baslamıştır. Yani şuan piyasada hem dc hemde ac olarak çalışan servo motorlar vardır.

Servo motor, herhangi bir işleyişin sonucunda meydana gelen hatayı algılayarak , bir geri besleme yardımı ile hatayı denetleyen ve kendi kendine hatayı çözen bir cihazdır. Küçük çaplı bir motordur. İçinde sağlam bir kompanzasyon sargısı vardır. Kuvvetli bir manyetik alana sahiptir.

Servo Motor Karakteristliği

  • Geniş bir hız sınırı içersinde stabil(kararlı) çalışabilmesi.
  • Devir sayısı düzgün ve hızlı bir şekilde değiştirilmelidir.
  • Büyük moment elde edilebilmedir.

Servo Motor Çalışma Mantığı

















  • Servo motorun 3 kablosu vardır . Bu 3 kablo kontrol devresine girer.
  • Bunlardan 2 tanesi + ve - besleme kabloloru iken kalan son kablo kontrol kablosudur.
  • Kontrolden gönderilen puls ler potansiyometreye gönderilir ve oda gerekli veriyi şafta gönderir.
  • Dişli kutusunda redüksüyon sağlanır ve motor dönmeye başlar .
  • En son motor konum bilgisini tekrar kontrol devresine gönderir. 
  • Yani feedback sistemi bu sayede kurulmuştur.
  • Motora giren ve motordan çıkan verilerin farkı hatayı verir. Çıkan hata hızlı bir şekilde düzeltilir.

7 Şubat 2015 Cumartesi

Arduino Projem - Doğru Akım Motorları ( DC Motorlar )

İlerleyen günlerde yapacağımız projelerde dc yani doğru akım motorları kullanacağız. O yünzden dc motorlar hakkında ufak bilgiler verelim sizlere.
Elektrik enerjisini yani bir bakıma verilen gerilimi , mekanik enerjiye çeviren elektrik makineleridir. Bu makinelere DA ve DC makineler denir. Motor yapısındaki bir ilektene bir doğru akım uygularsak bu iletkende bir elektriksel alan meydana gelir. N ve S kutuplarında bu oluşan elektriksel alanda mıknatıs etkisi yaparak itme çekme kuvveti uygulanmaya başlar ve motor döner.

Doğru akım motoronun iç yapısı aşağıdaki bölümlerden oluşmaktadır;
  1. Stator
  2. Rotor
  3. Kollektör
  4. Fırça
  5. Yataklar ve Kapaklar




Doğru Akım Motorları Çeşitleri

Fırçasız Doğru Akım Motorları ( Brushless Dc Motor )
  1. Şönt Motor
  2. Seri Motor
  3. Kompunt Motor ( Ters Kompunt , Eklemeli Kompunt )
Fırçalı Doğru Akım Motorları ( Brush Dc Motor )
  1. Sabit Mıknatıslı Motor
  2. Elektromıknatıslı Motor
Dc Motor Genel Özellikleri

  • 180 volt takamotre geri beslemeleri vardır.
  • 2-100 volt 0-10 amper arasında çalışırlar.
  • Armatür voltajı, feedback yöntemi ile de çalışır.
  • Redüktörlü motor olarakta kullanılabilirler.
  • Gerilim ile hız ayarı yapılabilir.
  • Besleme kaynağının kutuplarını değiştirerek yön ayarı yapılabilir.
 

Arduino Projem - Kondansatör Nedir ve Kullanım Yerleri

Elektriği depolamak için kullanılan elektronik bir malzemedir. Elektrik kısa süreliğine kondansatörlerde depolanabilir.

Kondansatörün Yapısı








Yapısal olarak 2 iletken levha arasına konulan 1 adet yalıtkandan oluşur. Bu elektriği geçirmeyen maddeye dielektrik denir. Dielektrik maddelere örnek verm
ek gerekirse ;
  • Mika
  • Polyester
  • Kağıt
  • Seramik
  • Tantal
  • Metalik Kağıt
İçersindeki kullanılan yalıtkan maddenin özelliğine göre kondansatör kutup kazanabilir. Kutuplu olanları dc gerilim altında kullanılabilir. Kutupsuz olanları hem AC hem de DC de kullanılabilmektedir.
Kutuplu ve Kutupsuz Kondansatörler









Kullanım Alanı ve Amaçları

Birçok devrede birçok amaçla kullanılabilir. Fakat kondansatöler 4 farklı amaç için kullanılır. Bunlar ise :
  1. Elektriği Depolamak
  2. Doğrultucu İşlemlerinde
  3. Filtre İşlemlerinde
  4. Kompanzasyon İşlemlerinde


3 Şubat 2015 Salı

Arduino Projem - Potansiyometre Kavramı ve Kullanımı

Sadece Arduino da değil çoğu elektronik uygulamada analog okuma , pwm gibi işlemlerde sensörlerden sonra en çok kullanılan elektronik malzemedir. Piyasada çok çeşiti vardır çünkü kullanım alanı oldukça yüksektir. Oyun kollarından tutun fırınlardaki döndürülerek sıcaklık ayarı yapılan düğmelere kadar çok geniş bir kullanım alanı vardır.

Potansiyometre Nedir ?

Potansiyometre, dışardan fiziksel bir etkiyle iç direncini arttırıp azaltabilen devre elemanıdır. Sanayi gibi daha fazla güç ve akımın mevcut olduğu yerlerde potansiyometre birazcık basit bir ekipman halini alır ve onun yerine reosta kullanılır. Aslında reosta ile potansiyometre arasında görev olarak pek bir fark yoktur.
Potansiyometreler konulduğu devrelerde akımı sınırlamak ve gerilimleri bölmek için kullanılır. Asıl amaçları da zaten tam olarak budur. Daha sonra teknoloji ilerledikçe kullanım alanı biraz daha artmıştır. Mesala şuan bu yazımı okuyan çoğu kişi oyun kollarını en az birkaç kez eline almıştır. Üzerinde haraket etmeyi kolaylaştıran analoglar vardır. Bunların temeli bir çeşit potansiyometreye dayanır.











Potansiyometre Nasıl Çalışır ?













Siyah bölge direnç malzemesinin bulunduğu yerdir. Ortada ise hareketli bir yer vardır. Mesala A bacağından giriş W bacağından çıkış alalım ortadaki haraketli parçayı sağa doğru haraket ettirirsek direncimiz artar. Ama B bacağından giriş W bacağından çıkış aldığımızı varsayıp hareketli parçayı sağa doğru hareket ettirirsek direncimiz düşer .


Potansiyometre Çeşitleri

  • Lineer Potansiyometreler
  • Dairesel Potansiyometreler

Arduino Projem - Direnç Kavramı ve Kullanımı

Direnç, kelime anlamındanda anlaşıldığı bir şeye olan gösterilen zorluktur. Yani direnç denilen kavram devrede akıma karşı bir zorluk engelleme göstererek belli bir değerde sabitlemek için kullanılır. Mesala elimizde 5 volt luk bir gerilim kaynağı var ve buna bir direnç bağlamadığımızı düşünelim sonuç ne olur ? Devremizden çok çok ve çook yüksek miktarda akım geçer. Bu yüksek akım istenmeyen bir durumdur. Bu yüzden devreye bir adet direnç koyarak akım ı belli bir düşük seviyeye çekebiliriz. Yine 5 volt dan örnek verelim önüne bir 1 k ohm luk bir direnç koyarsak devreden geçen akım 5 miliamper e düşer . Buda güvenirlilik açısından önemlidir. Tabikide yüksek akımlarda çalışan cihaz ve devreler vardır. Bunlar kendi özel güvenlik standartlarını sağlamak zorundadırlar.

Direnç Ne İşe Yarar ?

  • Devreden geçen akımı belli bir seviyede sınırlar ve sabit tutar.
  • Besleme gerilimini küçültüp bölerek diğer devre elemanlarınıda beslemeyi kolaylaştırır.
  • Hassas devre elemanlarını stabil çalışmasını sağlar.
  • Yük görevi yapar.
  • Isı enerjisi üretimi içinde kullanılabilir.
Direnç Çeşitleri

  • Karbon karışımlı dirençler
  • Film dirençler
  • Taş dirençler

Direnç Renk Kodları 




















2 Şubat 2015 Pazartesi

Arduino Projem - Ledler Hakkında

Aramızdaki çoğu kişi bunlara bende dahilim arduino dünyasına bir led i yakmakla başladı. Bir çok kişi bu led i yaktıktan sonra sevinç yaşadılar ve ileri seviyeye geçmek için arayış içersine girdiler. Dediğim gibi led bu isin temelidir. Nedir peki bu ledler hadi gelin hep beraber birazcık inceleyelim.

Led Nedir ?

Light Emittion Diode kelimerinin baş harflerinden LED , ışık ışıma diyotu anlamına gelir.
1920 yılında Rusya'da icat edilmiştir ama kullanıılır hale 70 li yıllarda gelmiştir. Yani 50 sene pek ilgi görmemiş bir icattır bakıldığında. Şuan çokça ünü artmış hatta televizyon ve telefonlara "amoled" "süperamoled " adıyla girmiştir.

Led Nasıl Çalışır ?














p-n yapılı led e doğru yönde  ve istenen boyutta voltaj verirsek kırmızı renkte gösterilen elektronlar beyaz renkli hole lere hareket eder. Bu hareket sırasında belli bir miktarda enerji ortaya çıkar. Bu enerji ledin içersinde kimsalların etkisiyle foton yayar. Bu fotonda ledimizin ışık vermesini sağlar.

Hangi Renkte Ledler Vardır ?







Kırmızı,sarı,yeşil,mavi ve beyaz gibi ledler vardır ve bu ledlerin voltajları yukarıda gördüğünüz gibi farklıdır.

Led e Nasıl Bir Direnç Bağlamalıyım ?

Led i sürerken önüne bağlanacak direnç ledin ömrü ve güvenirliliği için çok önemlidir. Bu bağlanacak direncin boyutu için çok basit bir hesaplama formulü vardır.









Arduino Projem - Elektronik Malzemeleri Tanımak Adına

Arduino Projem - Elektronik Malzemeleri Tanımak Adına

Elimizden geldiğince Arduino Projem olarak konu anlatımları yapamaya çalıştık. Belki güzel yazılarımız oldu belkide amatörce çalışmalar oldu. Amatörlükten öte bizim için önemli olan husus sizin yazılarımızdan faydalanabilmeniz. İşallah bu amacımıza ulaşabilmizdir. Konu anlatımlarımız tam manasıyla bitmemiştir. Sizlerin önerilerini ve isteklerini bekliyoruz . Sizlerin istediği konularda çalışmalarımız devam edecektir.
İşin içine yani arduino dünyasına biraz daha girebilmek için kullanacağımız bileşenleri de tanımamız ve onlara hakim olmamız gerekir. Bu bileşenlere bir kaç örnek vermek gerekirse ;
  • Ledler
  • Dirençler
  • Potlar
  • Anahtarlar
  • Kondansatörler vb 
  • Motorlar
  • Sensörler
Listelediğimiz bileşenler temel elektronik parçalardır. Bunların nasıl çalıştığını bilmek , elektrik altında davranışlarını anlamak son derece önemlidir. Elektrikte şaka olmaz bir led e direk 20 volt verirsek onu kullanım amacına itmiş oluruz . Led i ışık vermek için değil de odaya yanık kokusu veren oda parfümü olarak kullanmaya başlarız.

Malzemeleri tanımak önemlidir ki bunun için de çoğu bölümde malzeme bilimi adında dersler konulmuştur. Bizde sizlere elimizden geldiğince kullanacağımız malzemeleri sizlere tanıtacağımız.

Saygılarımla ....

31 Ocak 2015 Cumartesi

Arduino Projem - Fonksiyon Tanımlama

Arduino Projem - Fonksiyon Tanımlama

Bu konunun sözel kısmını yazmak için çok düşündüm ve aslında pek bir şey de buldum denemez ama yine 2 3 kelime birşey diyelim. Arduinoda kodlar yazarız hatta void loop() içersine birşeyler yazar sürekli bunlar o kod içersinde dönerler. Fonksiyon işlemide aslında bu işleme benzer bizim tanımladığımız yerde kod arka planında döngü olarak çalışır. Bu konuyu örneklerle anlatmak faydalı olacağını düşündüğümden lafı fazla uzatmadan örneklere geçiyoruz.

Örnek 1: Ekrana Yazı Yazdırma Fonksiyonu

void EkranaYaz()
{
Serial.println("Arduino Projem");
}

Yukarıdaki kodları yazdıktan sonra EkranaYaz(); komutunu yazdıktan sonra Arduino Projem yazısı serial monitorde yazılır.

Örnek 2: Belli Bir Sayının Karesini Alma Fonksiyonu

int KareHesapla7()
{
return 7*7;
}
Yukarıdaki kodları yazdıktan sonra sonuc= KareHesapla7(); yazılırsa sonuc değişkenine 49 sayısı atılır.

Örnek 3: Faktoriyel Alma Fonksiyonu

void FaktoriyelHesapla(int sayi)
{
int sonuc=1;
for(int i = sayi; i>0; i--)
{
sonuc = sonuc*i;
}
Serial.println(sonuc);
}
Yukarıda kodlar yazıldıktan sonra FaktoriyelHesapla(3); yazılırsa serial monitörde 6 sonucu çıkar çünkü 3*2*1=6 dır .

30 Ocak 2015 Cuma

Arduino Projem - I2C Haberleşmesi Nedir ?

Bugünkü yazımızda ı2c haberleşmesi yapısının temelini ve mantığını anlatmaya çalışacağız.

I2C Nedir ?

Inter Integrated Circuit kelimelerinin baş harflerinden gelmeketedir. I2C isim hakkı ise Philips ( NXP ) firmasına aittir. Bu yüzden two wire adıylada kullanılmaktadır.

Seri Haberleşme mi Yoksa Paralel Haberleşme mi ?

I2C mikrodenetleyiceler ve çeşitli cevresel birimler arasında iletişimi için kullanılan seri bir haberleşme yöntemidir. 2 hat üzerinden birden fazla birim birbirleriyle iletişim kurabilir.










Not: SCL ve SDA bacaklarına pull-up direnci bağlanmalıdır.

I2C Mantığı

Bu protokol temel olarak 2 hat vardır. Bunlardan biri SCL diğeri SDA hattıdır. SCl ( SerialClock ) veri senkronu için gerekli saat darbe hattıdır. SDA ise data hattıdır. Ayrıca kendine özgü yazma koruması ( WP ) ve çıkış işin (OE) gibi uçları yani pinleri vardır. SCL lojik 1 iken SDA da lojik 1 dan 0 e kadar olan geçiş start ( başlama ) işlemi yaparken yine SCL 1 lojik durumda SDA lojik 0 dan 1 e  olan geçiş stop ( durdurma ) anlamına gelir.

I2C yi Aktif Hale Getirmek

Arduinomuzda ı2c iletişim protokolünü aktif hale getirmek için "two wire" , "I2c" kütüphanesini kod bloğumuza eklemeleyiz.

#include "wire.h" // ile kütüphane ekler.

setup() fonksiyonu içine yazacağımız;

Wire.begin();  // ile ı2c haberleşmesini baslatmalıyız.

28 Ocak 2015 Çarşamba

Arduino Projem - Pull-Up ve Pull-Down Direnç Kavramı

Buton uygulamaları yapacağımız zaman karşılacağımız en büyük sorun butonun basılı kalma durumudur. Bunu da pull-up ve pull-down direnç yöntemleri ile çözmekteyiz.

Pull-Down Direnç

















Butona basıldığında 5V arduinonun input bacağına ulaşır. Fakat elimizi çektiğimizde 5V luk gerilim kalmaktadır. Bunu çözmek için şekilde gibi 10 K ohm luk direnç şekildeki gibi bağlanır.

Pull-Up Direnci

















Buradaki durum bir üstteki sistemin tam tersi olarak çalışmaktadır.

24 Ocak 2015 Cumartesi

Arduino Projem - Birazcıkta Müzik Dinleyelim

Sürekli arduino dersler sınavlar filan olmaz birazcıkta müzik dinleyelim. Bu şarkı tüm sevenlere aralarında mesafeler olup yastığa kafayı koyunca dertli kederli ve en önemlisi sevdiceğini düşünen takipçilerime gelsin.


Zeki Müren - Gözlerin Doğuyor Gecelerime


21 Ocak 2015 Çarşamba

Arduino Projem - Giriş Çıkış Devre Şemaları

Digital Output - Dijital Çıkış











int ledPin = 13;

void setup()
{
pinMode(ledPin,OUTPUT);
}

void loop()
{
digitalWrite(ledPin,HIGH);
delay(1000);
digitalWrite(ledPin,LOW);
delay(1000);
}

 Digital Input - Dijital Giriş











int ledPin = 13;
int inPin = 2;

void setup()
{
pinMode(ledPin,OUTPUT);
pinMode(inPin,INPUT);
}

void loop()
{
if ( digitalWrite(inPin) == HIGH )
  {
digitalWrite(ledPin,HIGH);
delay(1000);
digitalWrite(ledPin,LOW);
delay(1000);
  }
}

PWM Output - PWM Çıkışı











int ledPin = 9;

void setup()
{}

void loop()
{
for( int i = 0; i <= 255; i++ )
    {
analogWrite(ledPin,i);
delay(100);
    }
for( int i =255; i >=0; i--)
   {
analogWrite(ledPin,i)
delay(100);
   }
}

Arduino Projem - Giriş Çıkış İşlemleri

Arduino Projem - Giriş Çıkış İşlemleri

digitalRead(pin)

Daha önceki konularımızda da dediğimiz gibi dijital veri 0 ve 1 lerden oluşur. Burada da dijitalRead() işlemi ile incelenen pinden 0 veya 1 bilgisi okunur. Kodun kullanımı aşağıdaki gibidir;

deger = digitalRead( pin numarası );
deger ile tanımladığımız değişekene okunan pindeki 0 veya 1 bilgisi aktarılır.

digitalWrite(pin)

Bir önceki verdiğimiz kodda pindeki değeri değişkenimize yolluyorduk . Şimdi ise elimizdeki veriyi pinimize yolluyoruz. Daha iyi anlamanız için aşağıdaki örneği verelim.

int led = 13;
int pin = 7;
int value = 0;

void setup()
{
pinMode(led,OUTPUT);
pinMode(pin,INPUT);
}

void loop()
{
          value = digitalRead(pin);
          digitalWrite(led,value);
       
          }

Bu örnekte hem digitalRead() hemde digitalWrite() işlemi kullanılmıştır.Programda önce pinlere isim veriilmiş ve daha sonra onların giriş çıkış ayarlaması yapılmıştır. Void loop() döngüsünün içersinede okuma ve yazma işlemleri uygulanmıştır. 7 numarılı pinde dijital 1 değeri varsa bu okunur ve value değişkenine atılır. Bu value değeri ise digitalWrite(led,value) koduyla 13 nolu pinde tanımladığımız led pinine dijital 1 gönderilir ve ledin yanması sağlanır.

analogRead(pin)

Daha hassa uygulamalarda analog değerler işlenir. Bu işleme analog verilirin okunması ile mümkündür.

deger = analogRead( pin numarası );

analogWrite(pin)

0-255 arası analog bir değer pinlerimize gönderebiliriz. 0-1023 arasında okuduğumuz analog değerleri 0-255 e çevirmek için değer 4 böleriz.

int led = 10;
int pin = 0;
int value = 0;

void setup()
{
pinMode(pin,INPUT);
pinMode(led,OUTPUT);
}

void loop()
{
value = analogRead(pin);
value /= 4;
analogWrite(led,value);
}


Arduino Projem - Pin Modunu Ayarlama

Arduino Projem - Pin Modunu Ayarlama

Bu seferki konumuz biraz kısa olacak ama arduino programlamada önemli olan bir noktadır. Arduino modeline göre sayıları değişen pinlerimizi giriş mi yoksa çıkış işlemimi yapacacağını programın başında belirlelemeyiz. Program çalıştığında giriş mi çıkış olduğu konusundaki belirsizlik arduino kodlarımızın doğru çalışmalarını engelleyebilir. Bu pin modonu ayarlamayı aşağıdaki gibi basit bir kaç kod ile yapmaktayız.



int led = 13;
int pin = 7;
int value = 0;

void setup()
{
pinMode(led,OUTPUT);
pinMode(pin,INPUT);
}

void loop()
{

*********************  // Bu kodları siz kendi istediğiniz gibi ayarlayınız.
          }

pinMode , bu komut ile giriş veya çıkış hangisini kullanmak istiyorsak içersine yazarak seçebiliyoruz. Yanibu komudun için OUTPUT yazmak çıkış INPUT yazmak giriş manasına gelmektedir.

Not: Yukarıda ******* yerler sizin istediğiniz kodları yazabilirsiniz manasına gelmektedir.

20 Ocak 2015 Salı

Arduino Projem - Döngü Sorgulama Karşılaştırma İşlemleri

Arduino Projem - Döngü Sorgulama Karşılaştırma İşlemleri

Arduino da basit işlemler yapmak için  bile döngü kullanmak zorundayız. Bu sadece arduino ya özgü değildir. Tüm programlama türlerinde durum böyledir. Mesala arduino ile bir led i belli bir dış etkiyle yakacağız. Bu dış etkinin varlığı bir döngü veya sorgulama ile anlaşılır.Yada bir eylemin yapılmasının belirli koşullara bağlanması işlemi bu işlemlere örnektir.
Şimdi ise bu işlemlerin bazılarını yani arduino programlamada sıklıkla kullanılan ifadeleri başlıklar altından incelemeye başlayalım.

if

Bu komut ile if bloğunun içine yazılan bir koşulun test edilmesi sağlanır. Eğer koşul sağlanıyor ise if bloğunun altındaki komuta geçer ve o komut çalıştırılır. Aksi durumlarda yani koşul sağlanmamış ise program if bloğuna girmemiş gibi davranmaya devam eder varsa alt satıra geçer. Kullanımı ise aşağıdaki gibidir;

if ( someVarible =< 150 )
{
digitalWrite(ledpin,HIGH);
}
Yukarıdaki örnekte olduğu gibi değerimizin 150 ve 150 den küçük ise ledpin i aktif hale getirmesi isteniyor arduino dan.

if ...else

Bir önceki anlattığımız komuttan farkı burada şart sorgulandıktan sonra yanlış ise yani istenen koşullar sağlanmıyorsa else komutunun içine yazacağımız komutlar arduino tarafından çalıştırılır.
Basit bir örnek verecek olursak;

if ( someVarible < 100)
{
digitalWrite(ledpin,LOW);
}
else
{
digitalWrite(ledpin,HIGH);
}

for

Biraz daha değişik çalışan bir döngüdür. Belirli bir değerden belirli bir değere istedimiz artış miktarı ile gider. Her bir adımında blok içine yerleştirdiğimiz kodlar 1 kere çalışırlar. Bu şekilde birazcık karışık oldu galiba örnekle daha iyi anlatabiliriz.

for(int i=0;i<20;i++)
{
digitalWrite(12,HIGH);
delay(500);
digitalWrite(12,LOW);
delay(500);
}

Yukarıdaki kod bloğunu açıklamaya başlayalım. Öncelikle for komutu 3 ögeden oluşur.
  1. Başlangıç değeri . Bu kod bloğunda int i=0 bizim başlangıç değerimiz.
  2. Bitiş değeri . Bu kod bloğunda i<20 bizim 20 ye kadar sayacağımızı gösterir.
  3. Artış miktarı . i++ burada i değerinin 1 er 1 er artacığını söylemekteyiz.

while  

Bu döngüye girdikten sonra çıkmak için döngüyü kırmamız gerekir . Ve içersinde sürekli bir değişkenin değerini değiştirmeliyiz.

while ( someVariable < 150 )
{
digitalWrite(ledpin,HIGH);
delay(100);
digitalWrite(ledpin,LOW);
delay(100);
someVariable++;
}

someVarible değeri 150 olmadıkça döngüden çıkılamaz.

16 Ocak 2015 Cuma

Arduino Projem - Karşılaştırma ve Mantıksal Operatörler

Arduino Projem - Karşılaştırma ve Mantıksal Operatörler

Karşılaştırma operatörleri genellikle döngülerin içinde kullanılır. Mesala şu değer bu değer eşitse şunu yap gibi. Bu operatörler aşağıdaki gibidir.

x == y; // x eşittir y
x != y;  // x eşit değildir y
x < y;   // x değeri y değerinden küçük
x > y;   // x değeri y değerinden büyük
x <= y; // x değeri y değerinden eşit veya küçük
x >= y; // x değeri y değerinden eşit veya büyük

Mantık Operatörleri:

Mantık Ve Operatörü :

if ( x > 0 &&  x < 5 )  
Yukarıdaki kodun gerçekleşebilmesi için 2 şart vardır . Bunların ikisininde sağlanması durumunda istenen komuta geçilir. Yani x sayısı 0 ile 5 arasında ise kod bir alt satıra geçebilir.

Mantık Veya Operatörü :

if ( x > 0 || y > 0 )
Mantık veya komutunda şartlardan biri sağlanması kodun devam etmesi sağlanır. Yani x değeri sıfırdan büyükse veya y değeri sıfırdan büyükse şart sağlanır.

Mantık Değil Operatörü :

if ( !x < 0 )
Burada diğerlerinden farklı bir durum vardır. İfade doğru ise sonuç yanlıştır. Yani x değeri sıfırdan büyükse doğrudur ve istenilen şart sağlanır.
Arduino Projem - Matematiksel İşlemler

Arduino Projem - Matematiksel İşlemler

Matematiksel oparatörler olarak toplama, çıkarma, çarpma ve bölme vardır. Aslında bunlar bildiğimiz 4 işlemdirler.

y = y + 3;
x = x - 7;
i = j * 6;
r = r / 5;
Matematiksel islemleri arduino için biraz daha açaçak konuyu derinleştirecek olursak.

x ++       //  x = x + 1  ile aynıdır.
x --        //   x = x - 1  ile aynıdır.
x += y   //   x = x + y  ile aynıdır.
x -= y    //   x = x - y  ile aynıdır.
x *= y  //    x = x * y  ile aynıdır.
x /= y  //     x = x / y   ile aynıdır.

Şimdi ise  üst alma, karekök, mutlak değer ve trigonometrik matematiksel işlemlere bakalım.

Pow(2,3);  // 2 üzeri 3 işlemidir sonucunu 8 olarak alırız..
Sqrt(9);     //  9 un karekökünü alır ve bize 3 değerini verir.
Abs(-2);    //  Mutlak değer alma işlemidir. Sonucu bize 2 olarak verir.
sin(x);
cos(x);
tan(x);     // bu son üçüde trigonemetrik işlem yapmamıza yarayan oparetörler.

Ve son bir kaç tane daha operatör ile konumuzu sonlandırıyoruz.

a=min(x,y);                       // a ya x ve y den en küçük hangisi ise onu yazar.
a=max(x,y);                      // a ya x ve y den en büyük hangisi ise onu yazar.
a=constrain(x,min,max);  // iki sayı arasına sınırlama
a=floor(x);                        // ondalık sayıyı en küçük tam sayıya yuvarlama
a=ceil(x);                          // ondalık sayıyı en büyük tam sayıya yuvarlama



Arduino Projem - Değişken Kapsamı ( Variable Scope )

Arduino Projem - Değişken Kapsamı ( Variable Scope )

Bugünkü konumaza değişken kapsamı ile başlıyoruz.

Değişken Kapsamı

Variable scope yani değişken kapsamı bir global değişkenin hangi sınırlar içinde kullanacaksanız o sınırlar içinden bir değişken türü tanımlamadır. Bu cümle biraz karışık oldu galiba o yüzden birazdan açmak gerekirse ;

Elimizde 3,14 gibi bir değer var biz bunu int x =3,14; dersek hata yapmış oluruz. Bunu float x=3,14; biçiminde yapmalıyız.

Ayrıca maksimum 8 bit değerinde bir değer kullanacaksak 16 bit lik değer tanımlamak programımızı zorlar .Yani kullanacağımız değere göre değişken kapsamı tanımlamak programın rahat ve düzgün çalışması için önemli bir püf noktasıdır.

byte

Byte ondalık virgülü olmadan 8 bit değerinde sayısal veri saklar. 0-255 kapsam aralığıdır.

byte someVariable = 180;
int

İnt de aynı byte gibi ondalık virgülü olmayan tam sayılar için kullanılır. Byte den farkı kapsama miktarıdır. Artık 8 bit değil 16 bitlik sayısal veri saklanır. 32.767 ile  -32.768 arasında sayı bunun içine atanabilir.

int someVariable = 1800;

long

İnt ve byte gibi tamsayılar içindir. 32 bitlik sayısal veri saklanır. 2.147.483.647 ile -2.147.483.647 aralığında kullanılır.

long someVariable = 90000;

float

32 bit ondalıklı sayılar için kullanılır. Bununda kapsamı long gibi fazladır.

float someVariable = 3.14;

Arduino Projem - Arduino Kodlarına Basit Bir Giriş Yapalım

Arduino Projem - Arduino Kodlarına Basit Bir Giriş Yapalım

Bugün sizlere basit ama arduino programlamada önemli olan kodları tanıtmaya çalışacağım. Lafı uzatmadan hemen konu anlamatıma başlayalım.

/*… */ Block Comments

İnternette hazır projelere göz attığınızda kod bölümünün altında veya üzerinde

/* Bu program http://arduinoprojem.blogspot.com.tr/ tarafından yapılmıştır*/

şekilde görebilirsiniz.Bu programın kime ait olduğunu kim tarafından yapıldığını gösterir. Hiç bir şekilde kodlara etkisi yoktur. /* ......*/ noktalı yerlere istediğiniz herşeyi yazabilirsiniz.

; Semicolon

Kodlar yazdıktan sonra ; ile kod satırmızı sonladırmamız gerekir.

int x = 13 ;

setup()

Program çalışmaya başladığında setup() içinde tanımladığımız yapılar programa çağrılır.Örnek verecek olursak. Pin yapısı yada serial monitör burada yapılandırılır.

void setup()
{

pinMode(pin, OUTPUT);
          }

loop()

Loop() döngü fonksiyonudur içine yazılan işlevler sırayla istenen zamanla içersinde sürekli yapılır.

void loop()
{
digitalWrite(pin, HIGH); // pini aç

delay(1000); // 1 sn bekle

digitalWrite(pin, LOW); // pini kapa

delay(1000); // 1 sn bekle
}

// line comments

; den sonra kod ile ilgili bir açıklama yapmak istersek // yaparak istediğimiz şeyleri kod satırına yazabiliriz.

int x = 13; // x e 13 e atıyoruz gibi bir yazı yazabiliriz.

Variables-Değikenler

Bir değişken adlandırma ve program tarafından daha sonra kullanılmak üzere bir sayısal değer saklama bir yoludur.

int inputVariable = 0;

inputVariable = analogRead(2); 

if (inputVariable < 100)
{
inputVariable = 100;
}
delay(inputVariable);

Variable Declaration- Değişken Tanımlama

int inputVariable = 0;

12 Ocak 2015 Pazartesi

Arduino Projem - Arduino ya Kod Nasıl Atılır ?

İlk önce arduino parçalarını tanıyalım . Arduino yu satın aldıktan sonra kutudan 2 adet aparat çıkar. Bunlardan biri Arduino boardu diğeride usb kablosu. Onları ve kod atma işlemini resimler üzerinden sizlere yavaş yavaş anlatmaya başlayalım.

Arduino Uno

Usb Kablomuz

Kodları bu ekrana şekilde gibi yazıyoruz.


























































Son resimde görüldüğü arduino ya özel bir arayüz programı var . Bu programı bilgisayarımıza indirmemiz gerekiyor. Arduino Ide programına buradan ulaşabilirsiniz. İlk aşama olan programı indirip kurduktan sonra arduino ile bilgisayarı usb kablosu ile iletişeme geçiriyoruz. Programı Arduino Ide ye yazdıktan sonra düzenleyip kodu yüklüyoruz. Bunları nerden yapacağız diye soracak olursanız ise de File yazısının altında ki buton ile düzenleme yapılıyor. Edit yazısının altında kalan butonla ise upload (yükleme ) yapıyoruz.Upload işlemi yaptıktan sonra işlememiz tamamlanmış oluyor.

Arduino Projem - Basit Bir Sayaç Yapalım

Bugün ki yazımızda basit bir sayaç yapacağız. Sayaç yapmanın 2 temel hususu vardır. Biri değer tanımlamaktır diğeri ise 1 kere değişmesi için geçmesi gereken gecikme yaratmak. Bugün kü uygulamamız basit bir uygulamadır. O yüzden direk kodları paylaşıyorum. Bugün ki projede bir devre seması yoktur. Direk arduino üzerinden yapılacaktır.

Kodlarımızı programa kopyalıyoruz.

Serial Monitor de sayacımızın çalısır hali.


KODLAR:

 int x=0;
void setup()
{
  Serial.begin(9600);
}
void loop()
{
  x=x++;
  Serial.println(x);
  delay(1000);
}

11 Ocak 2015 Pazar

Arduino Projem - Serial Monitor Kullanımı

Karlı bir pazar sabahından bir kocaman merhaba sizlere.Daha önce ufak bir kaç ısınma amaçlı projeler uygulamar yaptık. Belki bizi takip edenlerin kafasında ufakta olsa kıpırdanmalar olmaya başlamıştır. Bu aslında bizim olmasını istediğimiz birşey sonuçta kopyala yapıştır bir yere kadar gelinebilir. Bugün ise size bahsetmek istediğimiz konu serial monitorun kullanılması hakkında ufak bir kaç püf noktası.

Serial Monitor Nedir ?

Arduino muza kodlar atabilmek için bilsayar üzerinden usb kablosu yardımıyla bağlıyoruz. Bu aslında bilgisayar ile arduino arasında bir iletişim protokülü oluşturmaktır. Arduino muzu bilgisayara bağladığımız an itabiriyle seri haberleşmeye yapmaya başlar. Bu seri haberleşmeye seri port adınıda verebiliriz. Bu seri porttan çift yönlü veri akışı olabilir. Hem arduino ya kodlar yollayabilir hemde arduino üzerinden bilgileri bilgisayarımızda görüntüleyebiliriz. Serial Monitor de tam da burda devreye girer. Arduinoda yaptığımız kodsal işlerin işlevsel sonuçlarını bir kaç basit kodla bilgisayarımızda görüntüleyebiliriz.

Serial Monitor Nasıl Çalışır ?

Bu sorunun cevabını 2 kısımda anlatalım:
  1. Kodsal Yapı 
  2. Tıkla Çalıştır Yapı
Kodsal Yapı:
  • void setup() un içine bir kod yazılarak serial haberleşmenin hangi hızla başlatalıcağını tanımlamımız gerekir. Aşağıdaki örnekte 9600 le seri haberleşmemizi başlatıyoruz. Bu veri gönderme hızı 9600 olabileceği gibi 4800,9600,14400,19200,28800 gibi değerlerde olabilir.
  void setup() 
{               
  Serial.begin(9600);
}

  •  void loop() un içine ise yazdırmak istediğimiz yazı veya değeri Serial.print() ve Serial.println() komutlarıyla yazdırabiliriz. Şimdi bu yazıyı yazarken bile kulağıma print ile println arasındaki fark ne soruları gelir gibi oldu. O yüzden onuda açıklamadan geçmeyelim. print ile kodumuzu yazarsak gönderdeğimiz yazı veya değerler yan yana aynı satırda yazılır fakat println de 2. veri gönderilmeden önce imleç otomatik olarak bir alt satıra geçer.
void loop() 
{
  Serial.println(“ARDUİNOPROJEM “);
           delay(1000);


void loop() 
{
  Serial.print(“ARDUİNOPROJEM “);
            delay(1000);
}
  •  Önemli bir hususta daha önceden tanımlanmış bir şeyin içindeki veriyi serial monitore yollama.Onuda aşağıdaki basitinden örnek kod bloğu ile anlatalım. Bunu için önce bir int deger tanımlayacağız önce sonrada onu serial monitore yollayacağız.


int deger = 12;

void setup()
 {
 Serial.begin(9600);
}

void loop()
{
Serial.println(deger);

delay(1000);
          Serial.println("https://arduinoprojem.blogspot.com");

delay(1000);
}

Bas Çalıştır Yapı:

Bunuda sizlere aşağıdaki resimlerle anlatacağım.

Az önce yazıda yazdığımız kodları buraya yapıştırıyoruz.
Kodumuzu upload ettikten sonra serial monitör ü çalıştırıyoruz.

Ve Serial monitörde göndermek istediğimiz şeyleri göndermiş oluyoruz.




10 Ocak 2015 Cumartesi

Arduino Projem - RGB Led Yakma

Rgb Led Ne Demek ?

Öncelikle Rgb kelimesinin nereden geldiğini söyleyelim. Bu kelime RedGreenBlue(RGB) kısatılmasından gelmektedir. Normal bir led bir (+) bir adet (-) bacak olmak üzere 2 adet bulundurur. Fakat bu RGB led 4 bacağa sahiptir. Bunlardan 3 tanesi kırmızı , yeşil , mavi ana renk bacaklarıdır. Diğer bacağı ise ortak toprak bacağıdır.  Burada amaç 3 temel renkten diğer renkleri elde edebilmektedir.
Yandaki RGB şemasında görüldüğü gibi 3 tane daire vardır. Bunların birbirinle olan birleşimi ile diğer renkler meydana geliyor.Örnek vereceksek olursak;
  • Kırmızı + Yeşil : Sarı
  • Yeşil + Mavi : Cyan
  • Mavi + Kırmızı : Magenta
gibi örnekler verebiliriz. Belli bir oranla karıştırarak renkler elde edeceğimiz renk oranları internetten bulabilceğiniz bir kaç tanesini bizde aşağıdaki resimle sizlere vereceğiz.

RGB Renk Kod Değerleri














































































Az çok kafanızda birşeyler belirmiştir. Şimdi bu konuyu zihinde daha iyi oturtabilmek için bir uygulama yapalım. Devre şeması ve kodlar asağıdaki gibidir.
Devre şemamızı bu şekilde kuralım.
Kodlarmızın ilk kısmı kırmızı , yeşil ve mavi pinlerini tanıtmadır.

İkinci kısımdan ise bu şekilde kodlar yazarak kırmızı,yeşil,mavi,sarı,mor,aqua gibi renkler oluşturmak.


Kodlar:



int redPin = 4;

int greenPin = 3;

int bluePin = 2;



void setup()

{

  pinMode(redPin, OUTPUT);

  pinMode(greenPin, OUTPUT);

  pinMode(bluePin, OUTPUT);

}



void loop()

{

  setColor(255, 0, 0);  // kırmızı

  delay(1000);

  setColor(0, 255, 0);  // yeşil

  delay(1000);

  setColor(0, 0, 255);  // mavi

  delay(1000);

  setColor(255, 255, 0);  // sarı

  delay(1000);

  setColor(80, 0, 80);  // mor

  delay(1000);

  setColor(0, 255, 255);  // aqua

  delay(1000);

}



void setColor(int red, int green, int blue)

{

  analogWrite(redPin, red);

  analogWrite(greenPin, green);

  analogWrite(bluePin, blue);

}