سلام من میخواستم ببینم برای دستور digitalWrite جز حالت های HIGH و LOW گزینه ای داریم که خودش اتوماتیک مقدار خروجی رو بخونه و هرچی بود برعکسش کنه . یا کلا برای اینکه با یه دستور مقدار خروجی هرچی بود عکسش کنیم از چه دستوری باید استفاده کرد ؟
ممنون
نمایش نسخه قابل چاپ
سلام من میخواستم ببینم برای دستور digitalWrite جز حالت های HIGH و LOW گزینه ای داریم که خودش اتوماتیک مقدار خروجی رو بخونه و هرچی بود برعکسش کنه . یا کلا برای اینکه با یه دستور مقدار خروجی هرچی بود عکسش کنیم از چه دستوری باید استفاده کرد ؟
ممنون
سلام
برای کار شما دستورdigitalReadیعنی مثلا ورودی پایه 13رو بخون و با دستورif/elseاگر اینجوری بود پایه 12فعال بشه
سلام مگه میتونیم دستور digitalWrite رو با یه متغیر تعریف کنیم ؟نمیشه که ! حتما باید بگیم یا HIGH کن یا LOW . . .
سلام نه مهندس منظورم این نیست .
شما فرض کن نمیدونی خروجیت بعد یه سری فعل و انفعالات 1 یا 0 . فقط میخوای اگر یه ورودی دادی به برد خروجی هرچی هست فقط مقدارش عوض بشه. اگر 0 بود بشه 1 و اگر 1 بود بشه 0
سلام
هیچ مشکلی نداره که ارگومان دوم تابع digitalWrite رو یه متغیر بزارید:
کد:void setup() {
// initialize digital pin 13 as an output.
pinMode(13, OUTPUT);
}
// the loop function runs over and over again forever
void loop() {
int data=0;
digitalWrite(13, data); // turn the LED on (HIGH is the voltage level)
delay(1000); // wait for a second
digitalWrite(13, data); // turn the LED off by making the voltage LOW
delay(1000); // wait for a second
}
مرسی یعنی برای کاری که من میخوام بکنم این کد درسته ؟
int a = digitalRead(output);
b= !a;
digitalWrite (output,b);
مهندس بی زحمت راجب اون یکی پست هم کمکم کنید. خالی کردن بافر و... ممنون
بله میتونید همین کد رو استفاده کنید.
کد:/*
Blink
Turns on an LED on for one second, then off for one second, repeatedly.
Most Arduinos have an on-board LED you can control. On the Uno and
Leonardo, it is attached to digital pin 13. If you're unsure what
pin the on-board LED is connected to on your Arduino model, check
the documentation at http://www.arduino.cc
This example code is in the public domain.
modified 8 May 2014
by Scott Fitzgerald
*/
// the setup function runs once when you press reset or power the board
void setup() {
// initialize digital pin 13 as an output.
pinMode(13, OUTPUT);
}
// the loop function runs over and over again forever
void loop() {
int a = 0;
digitalWrite (13, a);
delay(1000); // wait for a second
int b = !a;
digitalWrite(13, b); // turn the LED off by making the voltage LOW
delay(1000); // wait for a second
}
این کد مقدار اولیه رو 0 میده و پایه 13 رو خاموش میکنه . میخوایم پایه خروجی هرچی هست همون بمونه .
این کد درسته ؟
int a = digitalRead(output);
یعنی میتونیم بگیم مقدار خروجی رو بخون ؟
digitalWrite(x,!digitalRead(x))
بهترین و ساده ترین روش