İçindekiler:

Arduino Daha Az Bilinen Özellikler: 9 Adım
Arduino Daha Az Bilinen Özellikler: 9 Adım

Video: Arduino Daha Az Bilinen Özellikler: 9 Adım

Video: Arduino Daha Az Bilinen Özellikler: 9 Adım
Video: Arduino Nedir? Nasıl Kurulur ve Neler Yapılabilir? #1 2024, Temmuz
Anonim
Arduino Daha Az Bilinen Özellikler
Arduino Daha Az Bilinen Özellikler

Bu daha çok tipik olarak kullanılan Arduino platformlarının (örneğin Uno, Nano) çok sık bahsedilmeyen özelliklerinin bir listesidir. Bu liste, bu özelliklere bakmanız ve kelimeyi yaymanız gerektiğinde bir referans görevi görmelidir.

Tüm bu özelliklerin örneklerini görmek için koda bakın, çünkü bunları burada öğretilebilir (örneğin, Arduino 1 telli Ekran (144 Karakter)) birkaç maden projesinde kullandım. Aşağıdaki adımların her biri bir özelliği açıklamaktadır.

Adım 1: Besleme Voltajı

Arduino kendi besleme voltajını dolaylı olarak ölçebilir. Üst sınır referansı olarak besleme gerilimi ile iç referansı ölçerek, iç referans ve besleme gerilimi (analog/ADC okuması için üst sınır olarak hareket eden besleme gerilimi) arasındaki oranı elde edebilirsiniz. Dahili voltaj referansının tam değerini bildiğiniz için besleme voltajını hesaplayabilirsiniz.

Örnek kod da dahil olmak üzere bunun nasıl yapılacağına ilişkin tam ayrıntılar için bkz.

  • Gizli Arduino Voltmetresi – Akü Voltajını Ölçün:
  • Arduino kendi Vin'ini ölçebilir mi?:

Adım 2: Dahili Sıcaklık

Bazı Arduino'lar dahili bir sıcaklık sensörü ile donatılmıştır ve bu nedenle dahili (yarı iletken) sıcaklıklarını ölçebilir.

Örnek kod da dahil olmak üzere bunun nasıl yapılacağına ilişkin tam ayrıntılar için bkz.

Dahili Sıcaklık Sensörü:

Arduino kendi Vin'ini ölçebilir mi?:

Adım 3: Analog Karşılaştırıcı (Kesinti)

Arduino, pin A0 ve A1 arasında bir analog karşılaştırıcı kurabilir. Böylece biri voltaj seviyesini verir ve diğeri bu voltajın geçişi için kontrol edilir. Geçişin yükselen veya düşen kenar (veya her ikisi) olmasına bağlı olarak bir kesme oluşur. Kesme daha sonra yazılım tarafından yakalanabilir ve buna göre hareket edilebilir.

Örnek kod da dahil olmak üzere bunun nasıl yapılacağına ilişkin tam ayrıntılar için bkz.

Analog Karşılaştırıcı Kesintisi:

Adım 4: Sayaç

Tabii ki AVR'nin birkaç sayacı var. Genellikle çeşitli frekanslarda zamanlayıcı ayarlamak ve ihtiyaç halinde kesintileri artırmak için kullanılırlar. Bir diğeri çok eski moda bir kullanım olabilir, bunları herhangi bir ek sihir olmadan sadece sayaçlar olarak kullanmak, sadece ihtiyacınız olduğunda değeri okuyun (anket). Bunun ilgi çekici bir kullanımı, düğmelerin geri dönmesini sağlamak olabilir; Örneğin bu gönderiyi paylaşın: AVR Örneği T1 sayacı

Adım 5: Önceden Tanımlanmış Sabitler

Projenize sürüm ve derleme bilgisi eklemek için kullanılabilecek önceden tanımlanmış bazı değişkenler vardır.

Örnek kod da dahil olmak üzere bunun nasıl yapılacağına ilişkin tam ayrıntılar için bkz.

Serial.println(_DATE_); // derleme tarihi

Seri.println(_TIME_); // derleme zamanı

String stringOne = String(ARDUINO, DEC);

Serial.println(stringOne); // arduino ide sürümü

Serial.println(_VERSION_); // gcc versiyonu

Serial.println(_FILE_); // dosya derlendi

bu kod parçacıkları, bu verileri seri konsola çıkaracaktır.

Adım 6: Sıfırlama Yoluyla Değişkeni RAM'de Tutun

Arduino Uno'nun (ATmega328), güç kapatma sırasında değerleri ve ayarları korumanıza ve bir sonraki açılışta geri yüklemenize izin veren dahili EEPROM'a sahip olduğu iyi bilinmektedir. Çok iyi bilinmeyen bir gerçek, RAM'de bile sıfırlama sırasında değeri korumanın gerçekten mümkün olması olabilir - ancak değerler güç döngüsü sırasında kaybolur - sözdizimi ile:

imzasız uzun değişken_that_is_preserved _attribute_ ((bölüm (".noinit")));

Bu, örneğin, RESET'lerin sayısını ve EEPROM'u kullanarak aynı zamanda çalıştırma sayısını saymanızı sağlar.

Örnek kod da dahil olmak üzere bunun nasıl yapılacağına ilişkin tam ayrıntılar için bkz.

  • Reset ile Ram Değişkenini Koruyun:
  • EEPROM Kitaplığı:

7. Adım: Saat Sinyaline Erişin

Arduinos ve diğer AVR (ATtiny gibi), harici bir kristal osilatör kullanmadan çalıştırmanıza izin veren dahili bir saate sahiptir. Ayrıca aynı zamanda bu sinyali bir pin (örn. PB4) üzerine koyarak dışarıya da bağlayabilirler. Buradaki zor kısım, bu özelliği etkinleştirmek için çip sigorta bitlerini değiştirmeniz gerektiğidir ve sigorta bitlerini değiştirmek her zaman çipi tuğlalama riskini taşır.

CKOUT sigortasını etkinleştirmeniz gerekir ve bunu yapmanın en kolay yolu, Arduino Kullanarak AVR Atmega328p - 8bit Mikrodenetleyicinin Sigorta Bitlerinin Nasıl Değiştirileceği konusundaki talimatı takip etmektir.

Örnek kod da dahil olmak üzere bunun nasıl yapılacağına ilişkin tam ayrıntılar için bkz.

  • ATtiny dahili osilatörünün ayarlanması:
  • Arduino Kullanarak AVR Atmega328p - 8bit Mikrodenetleyicinin Sigorta Bitleri Nasıl Değiştirilir:

Adım 8: ATmega328P'nin Port Dahili Yapısı

ATmega328P'nin port iç yapısını bilmek, standart kullanım sınırlarının ötesine geçmemizi sağlar. Daha fazla ayrıntı ve dahili devre şeması için 20 pF ila 1000 nF Aralığı için Kapasitans Ölçer bölümüne bakın.

Basit örnek, Giriş Çekme Seri Örneği veya Dirençsiz Arduino Düğmesi talimatı ile gösterildiği gibi dahili çekme direncinin kullanılması nedeniyle herhangi bir dirence ihtiyaç duymayan dijital bağlantı noktalarına sahip düğmeleri kullanmaktır.

Daha ileri düzeyde ise, 20 pF kadar küçük ve ayrıca herhangi bir ek kablolama gerektirmeyen kapasitörleri ölçmek için bahsedildiği gibi bu bilginin kullanılmasıdır! Bu performansı elde etmek için, örnekte dahili/giriş empedansı, dahili pull-up direnci ve kaçak kapasitör kullanılmıştır. Birkaç nF'den daha aşağı inemeyen Arduino CapacitanceMeter Eğitimi ile karşılaştırın.

Adım 9: Fotodedektör Olarak Dahili (yerleşik) LED

Birçok Arduino kartı, koddan kontrol edilebilen yerleşik veya yerleşik LED'lere sahiptir, örn. Pin 13 üzerindeki Uno veya Nano kartlar. Bu pinden bir analog giriş pinine (örneğin A0) tek bir kablo ekleyerek bu LED'i fotodedektör olarak da kullanabiliriz. Bu, aşağıdakiler gibi çeşitli şekillerde kullanılabilir; çevre aydınlatmasını ölçmek için kullanın, düğme olarak LED kullanın, çift yönlü iletişim için LED kullanın (PJON AnalogSampling), vb.

Önerilen: