İçindekiler:

ESP8266 GPIO0/GPIO2/GPIO15 Pinlerini Kullanma: 4 Adım
ESP8266 GPIO0/GPIO2/GPIO15 Pinlerini Kullanma: 4 Adım

Video: ESP8266 GPIO0/GPIO2/GPIO15 Pinlerini Kullanma: 4 Adım

Video: ESP8266 GPIO0/GPIO2/GPIO15 Pinlerini Kullanma: 4 Adım
Video: Introduction to Heltec LoRa CubeCell Development Board HTCC-AB01 2024, Kasım
Anonim
ESP8266 GPIO0/GPIO2/GPIO15 Pinlerini Kullanma
ESP8266 GPIO0/GPIO2/GPIO15 Pinlerini Kullanma

1 Temmuz 2018 Güncellemesi -- GPIO0 bir çıktı olduğunda yeniden programlama hakkında not eklendi

Bu, ESP8266 modülünde GPIO0 / GPIO2 ve GPIO15 pinlerinin nasıl kullanılacağına dair çok kısa bir nottur.

Güncelleme: Ayrıca ESP8266-01 pinlerinin nasıl kullanılacağına da bakın.

Tanıtım

ESP8266, düşük maliyetli bir wifi özellikli çiptir. Çeşitli modül tiplerinde gelir ve çeşitli şekillerde programlanabilir. Tüm modüller GPIO0 ve GPIO2'yi erişilebilir kılar. ESP8266-01 dışındaki çoğu modül de GPIO15'i erişilebilir kılar. Bu GPIO'lar, modülün nasıl başlatılacağını kontrol eder ve bu nedenle, kullanılacaklarsa özel işlem gerektirir. GPIO6-GPIO11 ayrıca aşağıda açıklandığı gibi özel işlem gerektirir.

Adım 1: GPIO Pinlerini Flash – GPIO6'dan GPIO11'e

Çoğu ESP8266 kartında, GPIO6-GPIO11'in bir kısmına veya tamamına bağlı bir flaş çip bulunur. Çoğu program RAM'in yanı sıra flash bellek kullanır, bu nedenle kodunuzun yalnızca RAM'den çalıştığından özellikle emin olmadıkça, bu pinleri başka amaçlar için kullanamazsınız.

GPIO6 ila GPIO11 aralığında kullanılan pinlerin tam sayısı, modülünüzde kullanılan flash donanımının türüne bağlıdır. Quad IO, standart hızın 4 katına kadar veri için 4 hat (toplam 6 pin) kullanır. Dual IO, veri için 2 hat kullanır (toplam 4 pin) Standart, veri için tek bir hat kullanır (toplam 3 pin).

Tahtanızın tam olarak ne gerektirdiğini bilmiyorsanız, GPIO6'dan GPIO11'e kadar görmezden gelmek ve kodunuzdan bunlara atıfta bulunmamak en iyisidir.

Adım 2: GPIO0, GPIO2 ve GPIO15 Pinleri

GPIO0, GPIO2 ve GPIO15 Pinleri
GPIO0, GPIO2 ve GPIO15 Pinleri

Bu pinler çipin hangi modda başlayacağını belirler.

Normal program yürütme için GPIO0 ve GPIO2'nin Vcc'ye (3.3V) çekilmesi gerekir ve GPIO15'in her biri 2K ila 10K direnç aralığında bir dirence sahip GND'ye çekilmesi gerekir. 2K direnç daha iyi gürültü bağışıklığı sağlar. OLIMEX 2K dirençler kullanır SparkFun 10K dirençler kullanır. 3K3 dirençler kullanıyorum.

Bu girişlerin ayarları yalnızca çipin açılması (veya sıfırlanması) sırasında kontrol edilir. Bundan sonra pimler genel kullanım için mevcuttur, ancak aşağıda tartışıldığı gibi kullanımları bu harici yukarı/aşağı dirençler tarafından sınırlandırılmıştır.

Adım 3: GPIO0, GPIO2 ve GPIO15'i Çıkış Olarak Kullanma

GPIO0, GPIO2 ve GPIO15'i Çıkış Olarak Kullanma
GPIO0, GPIO2 ve GPIO15'i Çıkış Olarak Kullanma

Yukarıda belirtildiği gibi, bu pinler zaten GPIO15 için VCC'ye (GPIO0 ve GPIO2) veya GND'ye bağlı bir dirence sahip olacaktır. Bu, röle veya led+direnç gibi herhangi bir harici cihazın nasıl bağlanması gerektiğini belirler. GPIO0 ve GPIO2 için, çekme direncinin hareketini engellememesi için VCC ile pin arasına harici bir röle bağlanmalıdır. Tersine, GPIO15'e bağlı harici bir röle, aşağı çekme direncinin hareketini engellememesi için GND ile pin arasına bağlanmalıdır.

Harici cihazı etkinleştirmek için, GPIO0 veya GPIO2 DÜŞÜK (Aktif DÜŞÜK) ve GPIO15 ise YÜKSEK (Aktif YÜKSEK) sürülmelidir.

Yukarıdaki şema, GPIO0 ve GPIO2 ve GPIO15'in çıkış olarak nasıl kullanılacağını gösterir. Bu devre gerekli pullup/pulldown dirençlerini de içerir. GPIO0 tarafından sürülen 5V röle modülünün opto-izole olduğunu ve giriş için ayrı bir ortak bağlantıya sahip olduğunu unutmayın. 5V VCCA voltajının ESP8266 pinine uygulanmaması önemlidir.

GPIO0'ı çıkış olarak kullanırken nasıl yeniden programlanır

Not: Programlama moduna girmek için GPIO0'ın topraklanması gerekir. Eskiz çizerseniz, topraklamak size ESP8266 çipine zarar verebilir. Kodunuz GPIO0 çıkışını çalıştırdığında ESP8266'yı yeniden programlamanın güvenli yolu:- a) Kartı kapatmak b) GPIO0'ı gnd'ye kısa devre yapmak c) GPIO0'daki kısa devre nedeniyle program moduna giren kartı açmak d) çıkarmak GPIO0'dan kısa devre, böylece program çalışırken çıkışı kısa devre yapmazsınız e) kartı yeniden programlayın f) gerekirse kartı kapatıp açın.

Adım 4: GPIO0, GPIO2 ve GPIO15'i Giriş Olarak Kullanma

GPIO0, GPIO2 ve GPIO15'i Giriş Olarak Kullanma
GPIO0, GPIO2 ve GPIO15'i Giriş Olarak Kullanma

Bu pinleri giriş olarak kullanmak biraz zor. Yukarıda belirtildiği gibi, açılışta ve sıfırlama sırasında, ESP8266 modülünün normal çalışma modunda başlaması için bu pimler gerektiği gibi yukarı veya aşağı çekilmelidir. Bu, genel olarak, bu pinlere sadece harici bir anahtar bağlayamayacağınız anlamına gelir, çünkü açılışta anahtarın girişi toprağa çekmeyeceğini garanti edemezsiniz ve bu nedenle modülün doğru şekilde başlamasını önleyebilirsiniz.

İşin püf noktası, harici anahtarı doğrudan GPIO0 veya GPIO2'den GND'ye bağlamak değil, bunun yerine sadece ESP8266 başladıktan sonra toprağa (çıkış olarak) sürülen başka bir GPIO pinine bağlamaktır. GPIO pinlerinin çıkış olarak kullanıldığında, YÜKSEK veya DÜŞÜK olarak sürülmelerine bağlı olarak VCC veya GND'ye çok düşük dirençli bir bağlantı sağladığını unutmayın.

Burada sadece GPIO0 ve GPIO2 dikkate alınacaktır. Bu yöntemi kullanarak, bu iki (2) GPIO'yu kullanarak bir (1) ek giriş elde edebilirsiniz.

GPIO15 için, anahtarını +VCC'ye bağlamak için başka bir GPIO pini kullanarak benzer bir yöntem kullanılabilir, ancak bu ekstra bir giriş sağlamaz, diğer GPIO pinini doğrudan giriş olarak kullanabilirsiniz.

Yukarıdaki devre örnek olarak ESP8266-01 modülünü kullanır. Bu numarayı kullanmadan, bir UART bağlantısı için RX/TX pinlerini zaten kullanıyorsanız, ESP8266-01'in giriş olarak kullanmak için boş pinleri yoktur.

Çizimin setup() yöntemi yalnızca ESP8266 modülü başlatıldıktan sonra çalıştırıldığından, bu durumda GPIO0 çıkışını DÜŞÜK yapmak ve böylece GPIO2'ye bağlı S1 için bir toprak sağlamak güvenlidir. Anahtar ayarını okumak için çiziminizin başka bir yerinde digitalRead(2)'yi kullanabilirsiniz.

Çözüm

Bu kısa not, GPIO0, GPIO2 ve GPIO15'in çıkış olarak nasıl kullanılacağını ve GPIO0 ve GPIO2'yi birlikte kullanarak ekstra bir girişin nasıl kullanılacağını gösterir.

Önerilen: