int scvVal = 6; int drvVal = 9; int sensorVal = A1; void setup() { Serial.begin(9600); pinMode(6, OUTPUT); pinMode(9, OUTPUT); } void loop(){ sensorVal = analogRead(A1); Serial.print("Sensor Value: "); Serial.print(sensorVal); float voltage = (sensorVal*5.0)/1024.0; Serial.print("Volts: "); Serial.print(voltage); float pressure_pascal = (400.0*((float)voltage-0.5))*1000000.0; float pressure_bar = pressure_pascal/10e5; Serial.print("Pressure = "); Serial.print(pressure_bar); Serial.println(" bars"); Serial.print("Pressure = "); { for(int a = 255; a>=0;a--) { analogWrite(6,a); if (pressure_bar = 1600){ analogWrite (6, a); if (pressure_bar > 1600){ analogWrite (6, a); } for(int a = 0; a<256; a++) { analogWrite(6, a); { if(pressure_bar < 1600){ analogWrite (6, a); } for(int b = 255; b>=0;b--) { analogWrite(9, b); { if (pressure_bar == 1600){ analogWrite (9, b); if(pressure_bar < 1600){ analogWrite (9, b); } for(int b = 0; b<256; b++) { analogWrite(9, b); { if (pressure_bar > 1600){ analogWrite (9, b); } }
Kommentarer
Svar
Några riktlinjer för programmering:
Starta varje uttalande på ett nytt rad
int scvVal = 6; int drvVal = 9; int sensorVal = A1; void setup() { Serial.begin(9600); pinMode(6, OUTPUT); pinMode(9, OUTPUT); } void loop(){ sensorVal = analogRead(A1); Serial.print("Sensor Value: "); Serial.print(sensorVal); float voltage = (sensorVal*5.0)/1024.0; Serial.print("Volts: "); Serial.print(voltage); float pressure_pascal = (400.0*((float)voltage-0.5))*1000000.0; float pressure_bar = pressure_pascal/10e5; Serial.print("Pressure = "); Serial.print(pressure_bar); Serial.println(" bars"); Serial.print("Pressure = "); { for(int a = 255; a>=0;a--) { analogWrite(6,a); if (pressure_bar = 1600){ analogWrite (6, a); if (pressure_bar > 1600){ analogWrite (6, a); } for(int a = 0; a<256; a++) { analogWrite(6, a); { if(pressure_bar < 1600){ analogWrite (6, a); } for(int b = 255; b>=0;b--) { analogWrite(9, b); { if (pressure_bar == 1600){ analogWrite (9, b); if(pressure_bar < 1600){ analogWrite (9, b); } for(int b = 0; b<256; b++) { analogWrite(9, b); { if (pressure_bar > 1600){ analogWrite (9, b); } }
Använd parenteser och rikta in dem
.. så att varje par av {och} är i samma kolumn och justerar koden med parenteser för att vara indragen 2, 3 eller 4 mellanslag
int scvVal = 6; int drvVal = 9; int sensorVal = A1; void setup() { Serial.begin(9600); pinMode(6, OUTPUT); pinMode(9, OUTPUT); } void loop() { sensorVal = analogRead(A1); Serial.print("Sensor Value: "); Serial.print(sensorVal); float voltage = (sensorVal*5.0)/1024.0; Serial.print("Volts: "); Serial.print(voltage); float pressure_pascal = (400.0*((float)voltage-0.5))*1000000.0; float pressure_bar = pressure_pascal/10e5; Serial.print("Pressure = "); Serial.print(pressure_bar); Serial.println(" bars"); Serial.print("Pressure = "); { for(int a = 255; a>=0;a--) { analogWrite(6,a); if (pressure_bar = 1600) { analogWrite (6, a); if (pressure_bar > 1600) { analogWrite (6, a); } for(int a = 0; a<256; a++) { analogWrite(6, a); { if(pressure_bar < 1600) { analogWrite (6, a); } for(int b = 255; b>=0;b--) { analogWrite(9, b); { if (pressure_bar == 1600) { analogWrite (9, b); if(pressure_bar < 1600) { analogWrite (9, b); } for(int b = 0; b<256; b++) { analogWrite(9, b); { if (pressure_bar > 1600) { analogWrite (9, b); } }
Ta bort överflödiga parenteser
Som du kan se, du har några överflödiga / saknade parenteser. Vad du vill är förmodligen ungefär som:
int scvVal = 6; int drvVal = 9; int sensorVal = A1; void setup() { Serial.begin(9600); pinMode(6, OUTPUT); pinMode(9, OUTPUT); } void loop() { sensorVal = analogRead(A1); Serial.print("Sensor Value: "); Serial.print(sensorVal); float voltage = (sensorVal*5.0)/1024.0; Serial.print("Volts: "); Serial.print(voltage); float pressure_pascal = (400.0*((float)voltage-0.5))*1000000.0; float pressure_bar = pressure_pascal/10e5; Serial.print("Pressure = "); Serial.print(pressure_bar); Serial.println(" bars"); Serial.print("Pressure = "); for(int a = 255; a>=0;a--) { analogWrite(6,a); if (pressure_bar = 1600) { analogWrite (6, a); } if (pressure_bar > 1600) { analogWrite (6, a); } } for(int a = 0; a<256; a++) { analogWrite(6, a); if(pressure_bar < 1600) { analogWrite (6, a); } } for(int b = 255; b>=0;b--) { analogWrite(9, b); if (pressure_bar == 1600) { analogWrite (9, b); } if(pressure_bar < 1600) { analogWrite (9, b); } } for(int b = 0; b<256; b++) { analogWrite(9, b); if (pressure_bar > 1600) { analogWrite (9, b); } } }
Ta bort dubblettkod
I if-uttalandet utför du två gånger samma kod (båda skickar du en analogWrite
med samma värde, så koden (från för slingor kan reduceras till:
for(int a = 255; a>=0;a--) { analogWrite(6,a); if (pressure_bar >= 1600) { analogWrite (6, a); } } for(int a = 0; a<256; a++) { analogWrite(6, a); if(pressure_bar <= 1600) { analogWrite (6, a); } } for(int b = 255; b>=0;b--) { analogWrite(9, b); if (pressure_bar <= 1600) { analogWrite (9, b); } } for(int b = 0; b<256; b++) { analogWrite(9, b); if (pressure_bar >= 1600) { analogWrite (9, b); } } }
Oklart
Vad är oklart varför du först skriver ett analogt värde och direkt därefter (i varje if) skriver du samma värde. Jag är inte säker på vad du verkligen vill ha här. Antingen vill du skriva till en annan stift, eller om du vill ha en fördröjning (för att få värdet att ha någon effekt), jag är bara inte säker.
Svar
Titta på dina öppna parenteser {vs att stänga parenteser,}. Du behöver samma antal av varje. Om du har detta i Arduino IDE och använder CTRL-T är de lite lätta att hitta. Jag tittade bara och jag kan upptäck dem ganska enkelt.
}
ska vara.do you help me?
…. du måste börja med att hjälpa dig själv ….. läsa och förstå svaren nedan ….. kopiera inte och klistra in koden utan att tänka