Arduino ASCII String’i Okuma

0
49
Okunma

Arduino ASCII String’i Okuma

Bu çizim, alfasayısal olmayan bir karakterle ayrılmış değerleri bulmak için Serial.parseInt () işlevini kullanır. Çoğu zaman insanlar farklı bilgi parçalarını belirtmek için virgül kullanırlar (bu biçim genellikle virgülle ayrılmış değerler veya CSV olarak adlandırılır), ancak boşluk ya da dönem gibi diğer karakterler de işe yarayacaktır. Değerler tam sayılara ayrıştırılır ve bir RGB LED’inin rengini belirlemek için kullanılır. Işık rengini değiştirmek için tahtaya “5,220,70” gibi dizeleri göndermek için Arduino Yazılımı (IDE) seri monitörünü kullanacaksınız.

Donanım

  • Arduino veya Genuino
  • ortak anot RGB LED
  • 3 220 ohm direnç
  • Bağlantı Telleri
  • breadboard

Devre

Yukarıdaki devreyi yapmak için dört kabloya ihtiyacınız olacak. Bir kablo, 5V’yi kartın POWER konektöründen RGB LED’inin en uzun pime bağlar. LED’i en uzun iğnenin soldan ikinci olacak şekilde döndürmeniz gerekir.

RGB LED’i breadboard’unuza, en üstten ikinci olan en uzun pimle yerleştirin. Pimleri doğrulamak için belirli bir LED’in veri sayfasını kontrol edin, ancak R, V +, G ve B olmalıdır. Bu nedenle, 5V’den gelen kablo, yukarıdaki bağlantı şemasında olduğu gibi, bu ikinci pimi üst taraftan bağlamalıdır.

Kalan kablolarınız ile kırmızı katotunuzu pim 3’e, yeşil katotu pin 5’e, mavi katotu da rezistanslarla seri halde pin 6’ya bağlayın.

Ortak anotlu RGB LED’leri ortak bir güç pinini paylaşır. LED’i aydınlatmak için bir HIGH (YÜKSEK) pimi döndürmek yerine, diyot boyunca bir voltaj farkı yaratmak için pin LOW (DÜŞÜK) düğmesini döndürmeniz gerekir. Bu yüzden analogWrite () ile 255 göndermek LED’i kapatır, 0 değeri ise tam parlaklıkta yanar. Aşağıdaki kodda, çizim tarafında biraz matematik kullanacaksınız, böylece beklenen parlaklığa karşılık gelen değerleri gönderebilirsiniz. Esas olarak, analogWrite (pin, parlaklık) kullanmak yerine, analogWrite (pin, 255-brightness) çağıracaksınız.

Kod

LED’inizin bağlanacağı pimler için ilk önce bazı global değişkenler kurarsınız. Bu, programınızın ana bölümünde hangisinin kırmızı, yeşil ve mavi olduğunu ayırt etmeyi kolaylaştıracaktır:

Setup (); kısmında kart ile bilgisayar arasında saniyede 9600 bit veri ile seri iletişime geçin:

Ayrıca kurulumda, pimleri çıkışlar olarak yapılandırmak istersiniz:

loop (); kısmında seri tamponda herhangi bir veri olup olmadığını kontrol edin. Bunu bir while () ifadesiyle okumak, okunmayı bekleyen bilgi olduğu sürece çalışacaktır:

Ardından, seri bilgileri saklamak için bazı yerel değişkenleri bildirin. Bu LED’lerin parlaklığı olacak. Verileri virgülle ayırmak için Serial.parseInt () öğesini kullanarak, bilgileri değişkenlerinize okuyun:

Verileri değişkenlerinize okuduktan sonra, devam etmek için satırsonu karakterini kontrol edin:

constrain() kullanarak, değerleri PWM kontrolü için kabul edilebilir bir aralıkta tutabilirsiniz. Bu şekilde, değer PWM’nin gönderebileceği alanın dışındaysa, geçerli bir sayıyla sınırlı olacaktır. Bu değeri 255’ten çıkararak, ortak bir anot LED’i ile kullanılacak değeri formatlayacaksınız. Yukarıda açıklandığı gibi, anot ve tahtaya bağlı pin arasında bir voltaj farkı olduğunda, bu LED’ler yanar.

Artık PWM için değerleri biçimlendirdiğinize göre, LED’in rengini değiştirmek için analogWrite () öğesini kullanın. Çünkü değerini yukarıdaki adımda 255’ten çıkardınız:

Her bir LED’in değerini bir dizgede seri monitöre geri HEX değerleri olarak gönderin:

Son olarak, parantezleri if deyiminden, deyimden ve ana döngüden kapatın:

Kartı programladıktan sonra Arduino Yazılım (IDE) seri monitörünüzü açın. Mesaj gönderirken yeni satır karakteri göndermeyi seçtiğinizden emin olun. Işıklar için 0-255 arasındaki değerleri aşağıdaki biçimde girin: Kırmızı, Yeşil, Mavi. Değerleri panoya gönderdikten sonra, ekteki LED belirlediğiniz renge dönecek ve seri monitörde HEX değerlerini geri alacaksınız.

Kodun tamamı:

Kaynak:arduino.cc

1 Yıldız2 Yıldız3 Yıldız4 Yıldız5 Yıldız 1 Oydan 5,00 Puan. Bu yazıya oy vermek ister misiniz?
Loading...
Elektronik, Bilim, Teknoloji, Müzik, Tasarım.
Paylaş

CEVAP VER

Please enter your comment!
Please enter your name here

This site uses Akismet to reduce spam. Learn how your comment data is processed.