Мен ұшақтың статикалық маржасын массасын, сәтін және қолын есептеу арқылы есептеу үшін бағдарлама жасаймын. Шындығында үлкен сандармен айналысады.
Арифметиканың үлкен сандарға дұрыс қолданылатындай етіп менің кодты орнатуда қиындық туды. Мен әлі күнге дейін жұмыс істеймін, бірақ кіріс 0-9 болғанда ғана. Арифметика сандарды шегінен асыра алмайды.
Мен оларды ASCII форматынан олардың мақсатты мәніне түрлендіру үшін жеке айнымалыларға санды бұзатынымды түсінемін. Мәселе осы сандарды біріктіреді.
Мен бұл өте қарапайым екенін білемін, бірақ мен ұзақ уақыт үзілістен кейін ардуиноды қайтадан жинап алып, өте ржильдім.
Міне менің кодексім мынау:
long batterymoment,num1,num2,answer;
int batterymass = 720;
int batteryposition;
boolean mySwitch = false;
void setup() {
Serial.begin(9600);
num1=0;
num2=0;
Serial.println("Enter battery position");
}
void loop() {
while (Serial.available()){
batteryposition = Serial.read();
if(batteryposition>47 && batteryposition<58){
if(!mySwitch){
num1=(num1*10)+(batteryposition-48);
}else{
num2=(num2*10)+(batteryposition-48);
}
}
answer=num1+num2;
batterymoment=answer*batterymass;
Serial.print("Battery moment is: ");
Serial.println(batterymoment);
num1=0;
num1=0;
mySwitch=false;
}
}
Рахмет.