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); } } 

댓글

  • Arduino : SE에 오신 것을 환영합니다. 코드를 올바르게 들여 쓰기하면 삶이 훨씬 쉬워 질 것입니다. 그러면 누락 된 } 위치가 상당히 분명해집니다.
  • 도와주세요
  • @Duc Hoang : 서식을 지정하고 있습니까? 코드를 올바르게 읽을 수 있습니까? 질문 편집기에서를 선택하고 {} 버튼을 클릭합니다.
  • 대괄호가 무작위로 사용되는 것을 본 적이 없습니다 …;)
  • do you help me? …. 자신을 돕는 것으로 시작해야합니다 ….. 아래 답변을 읽고 이해하십시오 ….. 생각없이 코드를 복사하여 붙여 넣지 마십시오

답변

프로그래밍을위한 몇 가지 지침 :

새 문장에서 각 문장 시작 line

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); } } 

괄호를 사용하고 정렬

.. 따라서 {및}의 각 쌍이 동일한 열에 있고 코드를 괄호로 정렬하여 2, 3 또는 4 개의 공백으로 들여 쓰기

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); } } 

불필요한 괄호 제거

As 보시다시피 불필요한 / 누락 된 괄호가 있습니다. 원하는 것은 다음과 같을 것입니다.

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); } } } 

중복 코드 제거

if 문에서 동일한 코드를 두 번 수행합니다 (둘 다 동일한 값으로 analogWrite를 전송하므로 코드는 for 루프는 다음과 같이 줄일 수 있습니다.

 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); } } } 

불명확

아날로그 값을 처음 쓰는 이유가 무엇인지 명확하지 않은 것은 무엇입니까? 그리고 바로 뒤에 (각 경우에) 동일한 값을 쓰는 이유는 무엇입니까? 여기에서 정말 원하는 것이 무엇인지 모르겠습니다. 다른 핀 또는 지연 (값에 영향을 미치기 위해)을 원할 경우 확실하지 않습니다.

답변

열린 대괄호 {대 닫는 대괄호}를보세요. 각각 동일한 수의 괄호가 필요합니다. 아두 이노 IDE에이 파일이 있고 CTRL-T를 사용하면 쉽게 찾을 수 있습니다. 방금 살펴 보았습니다. 쉽게 찾을 수 있습니다.

답글 남기기

이메일 주소를 발행하지 않을 것입니다. 필수 항목은 *(으)로 표시합니다