আমি আরডিনো (এবং সাধারণভাবে কম্পিউটার প্রোগ্রামিং) এ নতুন, তাই এই প্রশ্নটি নিরীহ মনে হলে আমি ক্ষমা চাই।
আমি একবার বেসিক আরডুইনো-এলইডি সংযোগ স্থাপন করার পরে সিরিয়াল পোর্টের মাধ্যমে আইএনটিগ্রার্সকে আরডুইনোতে প্রেরণে আমার সমস্যা হয়। আমি সহজেই 'এম', 'ও' এবং এর মতো অক্ষরগুলি প্রেরণ করতে পারি .. তবে আমি যদি একটি নম্বর পাঠাই তবে মনে হয় এটি কেবল এটি পায় না get
এখানে আরডুইনো কোডটি রয়েছে, আদর্শভাবে এটি ইউএসবি বন্দর থেকে পাইথন বা সিরিয়াল মনিটরের মাধ্যমে একটি মান পাওয়া উচিত এবং তারপরে মান অনুযায়ী এলইডি এর উজ্জ্বলতা সামঞ্জস্য করে। (মান অবশ্যই [0,255] এর মধ্যে হতে হবে)।
দ্রষ্টব্য: আমি আরডুইনো ইউএনও এবং পাইথন 3 ব্যবহার করছি
// --------------------------
int LED = 10;
int number;
void setup(){
pinMode(LED,OUTPUT);
Serial.begin(9600);
}
void loop(){
number = Serial.read();
Serial.print(number);
Serial.print('\n');
if(number == -1){
number = 0;
}
else if(number > 255){
number = 255;
}
else if(number < 0){
number = 0;
}
analogWrite(LED,number);
delay(1000);
}
যাইহোক, যখন আমি সিরিয়াল বন্দরে বা পাইথনের মাধ্যমে একটি মান ইনপুট করি, উদাহরণস্বরূপ 0, এটি আমাকে উত্তর হিসাবে 48 দেয় (যা আকর্ষণীয়ভাবে, 0 এর জন্য এএসসিআইআই কোড!) এবং এলইডি আলোকিত করে যা যা হওয়ার পরে তা নয় since 0 এ এলইডি বন্ধ করা উচিত !! আমি কিছু মিস করছি তবে আমি কী খুঁজে পাচ্ছি না ... আপনি কি দয়া করে আমাকে ভুল বলতে পারেন?
পাইথনে আমি যে কোডটি ব্যবহার করি তা এখানে:
import serial
import time
try:
arduino = serial.Serial(port,speed)
time.sleep(2)
print("Connection to " + port + " established succesfully!\n")
except Exception as e:
print(e)
#Note: for characters such as 'a' I set data = b'a' to convert the data in bytes
#However the same thing does not work with numbers...
data = 0
data = arduino.write(valueToWrite)
time.sleep(2)
arduino.close()
আমি কি ভুল বা ভুল বোঝাবুঝি করছি? ধন্যবাদ.
arduino.write(chr(valueToWrite))