InputPullupSerial

Bu örnek, pinMode () ile INPUT_PULLUP kullanımını gösterir. USB üzerinden Arduino'nuz ve bilgisayarınız arasında seri iletişim kurarak bir anahtarın durumunu izler.

Ayrıca, giriş YÜKSEK olduğunda, pime 13 takılan yerleşik LED yanar; DÜŞÜK olduğunda, LED sönecektir.

Gerekli Donanım

  • Arduino Kurulu
  • Anlık bir düğme, düğme veya geçiş anahtarı
  • breadboard
  • bağlantı teli

Devre

Arduino kartına iki kablo bağlayın. Siyah tel, zemini düğmenin bir bacağına bağlar. İkinci tel, dijital pim 2'den basma düğmesinin diğer bacağına gider.

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. Pim 2'deki dahili çekme aktif olduğundan ve 5V'ye bağlandığından, düğme açıkken YÜKSEK okuruz. Düğme kapandığında, Arduino toprağa bağlantı tamamlandığından DÜŞÜK okur.

Şematik

Kod

Aşağıdaki programda, kurulum işlevinde yapacağınız ilk şey, Arduino'nuz ve bilgisayarınız ile hat arasında saniyede 9600 bit veri ile seri iletişime başlamaktır:

Serial.begin(9600);

Ardından, dijital pimi 2 dahili çekme direnci etkinken bir giriş olarak başlatın:

pinMode(2,INPUT_PULLUP);

Aşağıdaki hat, yerleşik LED ile bir çıkış 13 pin yapar:

pinMode(13, OUTPUT);

Kurulumunuz tamamlandıktan sonra, kodunuzun ana döngüsüne geçin. Düğmenize basılmadığında, dahili çekme direnci 5 volta bağlanır. Bu, Arduino'nun "1" veya YÜKSEK rapor etmesine neden olur. Düğmeye basıldığında, Arduino pimi toprağa çekilerek Arduino'nun "0" veya DÜŞÜK raporuna neden olur.

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);

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

Serial.println(sensorValue, DEC);

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

Pim 13 üzerindeki LED, düğme YÜKSEK olduğunda yanar ve DÜŞÜK olduğunda söner.


/*
  Input Pull-up Serial

  This example demonstrates the use of pinMode(INPUT_PULLUP). It reads a digital
  input on pin 2 and prints the results to the Serial Monitor.

  The circuit:
  - momentary switch attached from pin 2 to ground
  - built-in LED on pin 13

  Unlike pinMode(INPUT), there is no pull-down resistor necessary. An internal
  20K-ohm resistor is pulled to 5V. This configuration causes the input to read
  HIGH when the switch is open, and LOW when it is closed.

  created 14 Mar 2012
  by Scott Fitzgerald

  This example code is in the public domain.

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

void setup() {
  //start serial connection
  Serial.begin(9600);
  //configure pin 2 as an input and enable the internal pull-up resistor
  pinMode(2, INPUT_PULLUP);
  pinMode(13, OUTPUT);

}

void loop() {
  //read the pushbutton value into a variable
  int sensorVal = digitalRead(2);
  //print out the value of the pushbutton
  Serial.println(sensorVal);

  // Keep in mind the pull-up means the pushbutton's logic is inverted. It goes
  // HIGH when it's open, and LOW when it's pressed. Turn on pin 13 when the
  // button's pressed, and off when it's not:
  if (sensorVal == HIGH) {
    digitalWrite(13, LOW);
  } else {
    digitalWrite(13, HIGH);
  }
}

See Also