DigitalReadSerial

Bu örnek, Arduino veya Genuino'nuz ile bilgisayarınız arasında USB üzerinden seri iletişim kurarak bir anahtarın durumunu nasıl izleyeceğinizi gösterir.

Gerekli Donanım

  • Arduino veya Genuino Kurulu
  • Anlık bir düğme, düğme veya geçiş anahtarı
  • 10k ohm direnç
  • bağlantı telleri
  • breadboard

Devre

Karta üç kablo bağlayın. İlk iki, kırmızı ve siyah, 5 voltluk besleme ve toprağa erişim sağlamak için breadboard'un yan tarafındaki iki uzun dikey sıraya bağlanır. Üçüncü tel, dijital pim 2'den düğmenin bir bacağına gider. Düğmenin aynı ayağı aşağı çekme direnci (burada 10k ohm) ile toprağa bağlanır. Düğmenin diğer ayağı 5 voltluk beslemeye bağlanır.

Butonlar veya anahtarlar, bir düğmeye bastığınızda bir devreye iki nokta bağlar. Buton açıkken (basılı değil), butonun iki ayağı arasında bağlantı yoktur, bu nedenle pim toprağa bağlanır (aşağı çekme direnci üzerinden) ve DÜŞÜK veya 0 olarak okunur. Düğme kapatıldığında (basıldığında) ), pimi 5 volta bağlayan iki ayağı arasında bir bağlantı kurar, böylece pim YÜKSEK veya 1 olarak okunur.

Dijital i / o pimini her şeyden çıkarırsanız, LED düzensiz yanıp sönebilir. Bunun nedeni, girişin "yüzer" olmasıdır - yani voltaj veya toprak ile sağlam bir bağlantısı yoktur ve rastgele YÜKSEK veya DÜŞÜK döner. Bu yüzden devrede bir aşağı çekme direncine ihtiyacınız var.

Şematik

Kod

Aşağıdaki programda, kurulum işlevinde yapacağınız ilk şey, panonuzla bilgisayarınız arasında hat ile seri iletişim, saniyede 9600 bit veriye başlamaktır:

Serial.begin(9600);

Ardından, giriş olarak düğmenizden çıkışı okuyacak olan dijital pin 2'yi bir giriş olarak başlatın:

pinMode(2,INPUT);

Kurulumunuz tamamlandıktan sonra, kodunuzun ana döngüsüne geçin. Düğmenize basıldığında, 5 volt devrenizden serbestçe akacaktır ve basılmadığında, giriş pimi 10k ohm direnç üzerinden toprağa bağlanacaktır. Bu bir dijital giriştir, yani anahtar yalnızca açık durumda (Arduino'nuz tarafından "1" veya YÜKSEK olarak görülür) veya kapalı durumda (Arduino'nuz tarafından "0" veya DÜŞÜK olarak görülür) olabilir arasında hiçbir şey yok.

Programınızın ana döngüsünde yapmanız gereken ilk şey, anahtarınızdan gelen bilgileri tutmak için bir değişken oluşturmaktır. Anahtardan gelen bilgiler "1" veya "0" olacağından, int veri türü kullanabilirsiniz. Bu değişken sensorValue olarak adlandırın ve dijital pin 2'de okunan her sensorValue eşit olacak şekilde ayarlayın. Tüm bunları tek bir kod satırı ile yapabilirsiniz:

int sensorValue = digitalRead(2);

Kart girişi okuduktan sonra, bu bilgiyi ondalık değer olarak bilgisayara yazdırmasını sağlayın. Bunu, son kod satırımızdaki Serial.println () komutuyla yapabilirsiniz :

Serial.println(sensorValue);

Şimdi, Seri Monitörünüzü Arduino Yazılımında (IDE) açtığınızda, anahtarınız açıksa "0" veya anahtarınız kapalıysa "1" akışını göreceksiniz.


/*
  DigitalReadSerial

  Reads a digital input on pin 2, prints the result to the Serial Monitor

  This example code is in the public domain.

  http://www.arduino.cc/en/Tutorial/DigitalReadSerial
*/

// digital pin 2 has a pushbutton attached to it. Give it a name:
int pushButton = 2;

// the setup routine runs once when you press reset:
void setup() {
  // initialize serial communication at 9600 bits per second:
  Serial.begin(9600);
  // make the pushbutton's pin an input:
  pinMode(pushButton, INPUT);
}

// the loop routine runs over and over again forever:
void loop() {
  // read the input pin:
  int buttonState = digitalRead(pushButton);
  // print out the state of the button:
  Serial.println(buttonState);
  delay(1);        // delay in between reads for stability
}

See Also