من وقتی آردوینو لئوناردو که پروگرام شده رو به کامپیوتر وصل میکنم درست کار میکنه ولی با تغذیه خارجی درست کار نمیکنه و کدها درست لود نمیشه
ببینید شما تو برنامتون هر کد کلیدی که دریافت میکنید یه پرینت رو سریال میگیرید، حالا سوالم اینه که موقعی به pc وصل میکنید پروت سریال رو هم باز میکنید یا خیر ؟
لطفا یه بررسی هم کنید به این شکل که قسمت هایی از کد رو که دارید پرینت سریال میگیرید کامنت کنید و دوباره با تغذیه خارجی چک کنید.
سلام وقت بخیر
لطفا مدار تغذیه خارجی تون رو بفرمایید چیه ؟
و کدهایی که میگید درست لود نمیشه یعنی مقداری از دستورات اجرا میشه ؟ یا اشتباه محاسباتی داره یا اصلا درست کار نمیکنه؟
پاوربانک
شارژر موبایل
یه منبع دیگه با ولتاژ 7.7ولت با جریان حداقل توان خروجی 2آمپر
با هیچ کدوم درست کار نکرد
چراغای روی برد روشن میشه ولی دستورات اجرا نمیشه
#include <Keyboard.h>
#include <RCSwitch.h>
RCSwitch mySwitch = RCSwitch();
char LED_Pins_array = {9, 10, 11};
char LED_Sequence_array = {9, 10, 11};
byte squenceLength = 3;
int pin_switch = 8;
boolean oldSwitchState = LOW;
boolean newSwitchState1 = LOW;
boolean newSwitchState2 = LOW;
boolean newSwitchState3 = LOW;
byte state = -1;
void setup()
{
Serial.begin(9600);
mySwitch.enableReceive(0); //in UNO pin #2 and in LEONARDO pin #3
pinMode(8,OUTPUT); //for shutdown button
Keyboard.begin();
for (byte i=0; i< 3; i++)
{
pinMode(LED_Pins_array[i], OUTPUT);
digitalWrite(LED_Pins_array[i],LOW);
}
pinMode(pin_switch, INPUT);
}
void loop()
{
newSwitchState1 = (mySwitch.getReceivedValue()==12598460);
delay(10);
newSwitchState2 = (mySwitch.getReceivedValue()==12598460);
delay(10);
newSwitchState3 = (mySwitch.getReceivedValue()==12598460);
// key #1
if (mySwitch.getReceivedValue()==12598462) {
digitalWrite(8,HIGH);
delay(2000);
digitalWrite(8,LOW);
delay(2000);
mySwitch.resetAvailable();
Serial.print("1 ");
}
if (mySwitch.getReceivedValue()==12598450) {
Keyboard.press(KEY_UP_ARROW);
mySwitch.resetAvailable();
delay(250);
Serial.print("5 ");
}
if (mySwitch.getReceivedValue()==12598449) {
Keyboard.press(KEY_DOWN_ARROW);
mySwitch.resetAvailable();
delay(250);
Serial.print("6 ");
}
if ( (newSwitchState1==newSwitchState2) && (newSwitchState1==newSwitchState3) )
{
if ( newSwitchState1 != oldSwitchState )
{
if ( newSwitchState1 == HIGH )
{
state++;
if (state > (squenceLength -1) ) { state = 0; }
for (byte i=0; i< 3; i++)
{
digitalWrite(LED_Pins_array[i],LOW);
}
// Turn on the next LED
digitalWrite(LED_Sequence_array[state],HIGH);
delay(1000);
digitalWrite(LED_Sequence_array[state],LOW);
}
oldSwitchState = newSwitchState1;
mySwitch.resetAvailable();
}
mySwitch.resetAvailable();
}
Keyboard.releaseAll();
Keyboard.end();
}
ولی اگه به سیستم روشن وصل کنم درست کار میکنه
code: https://b2n.ir/remo1
کدهای پرینت سریال رو حذف کردم ولی بازم درست اجرا نشد.
کد رو بدون کتابخانه و کدهای Keyboard.h اجرا کردم بدون مشکل اجرا شد.
من میخوام با این کد اول کامپیوترِ خاموش رو با رله روشن کنم بعد از دستورهای کیبورد هم استفاده کنم ولی ظاهرا مشکل از کتابخانهی کیبورد هست
پیشنهاد شما چیه؟ چکار میتونم بکنم؟
باید تابع های کد رو دونه به دونه بررسی کنید ببینید کدومش ایراد داره، یکی یکی کامنت کنید.
جایی که مشکل رو ایجاد میکنه پیدا میشه