سلام دوستان.
از اونجا که من در زمینه الکترونیک و برنامه نویسی تقریبا کار نکردم لذا اگر سوالاتم احیاناً پیش پا افتادس ببخشید.
من قصد دارم با یه برد UNO اطلاعات مربوط به یک موتور انکودر دار رو شامل دور موتور و ولتاژش رو بخونم. یه سری سرچ کردم و کد های مربوط رو پیدا کردم و طبق دستور العمل ها پیش رفتم و تونستم خروجی های مورد نظر رو بگیرم. منتها مشکل من اینجاست که هر کدوم از این کد ها در یک اسکچ (Sketch) قابلیت لود شدن روی بُرد آردوئینو رو داره و نمی تونم هر دوی اون های رو در یک اسکچ قرار بدم که با یک پورت سریال بتونم هر دوی اونها رو به ترتیب خروجی بگیریم و روی کامپیوتر داشته باشم.
یعنی مشکل اصلی من اینه که این دو تا کد رو بتونم در غالب یک کد و یک اسکچ قرار بدم و آپلود کنم روی ماژول آردوئینو.
ممنون می شم راهنمایی کنید
کد اول برای خوندن ولتاژ
// the setup routine runs once when you press reset:
void setup() {
// initialize serial communication at 9600 bits per second:
Serial.begin(9600);
}
// the loop routine runs over and over again forever:
void loop() {
// read the input on analog pin 0:
int sensorValue = analogRead(A0);
// Convert the analog reading (which goes from 0 - 1023) to a voltage (0 - 5V):
float voltage = sensorValue *(5.0 / 1023.0*4.86)*sensorValue *(5.0 / 1023.0*4.86)/4;
delay(300);
// print out the value you read:
Serial.println(voltage);
}
کد دوم برای خودند تعداد پالس انکودر ( جهت چرخش برام مهم نیست فقط دور موتور رو می خوام)
// Bidirectional 4x Array Encoder Program (First Program)
unsigned long count=0;
unsigned long timep, t, etime;
void setup()
{
Serial.begin(9600);
pinMode(3,INPUT); //Channel A
attachInterrupt(1,transition,CHANGE);
timep = micros(); //Set the initial time
}
void loop()
{
t = micros();
etime = t - timep;
if (etime > 100000)
{
Serial.println(count*0.33);
count= 0;
timep = t;
}
}
void transition()
{
count++;
}