错误:请求“sg90”中的成员“write”,其属于非类类型“int”sg90.write(180);

问题描述 投票:0回答:1

你好,我正在为我的第一个与 arduino 合作的项目尝试一些关于自动垃圾的事情

当一只手靠近她时打开,当我编码时我收到此错误

她就是代码

#include <Servo.h> //librarie de servo moteur
int echo = 7;
int trig = 6;
int sg90 = 8;
int distance;
int duration;

void setup() {
pinMode(trig, OUTPUT);
pinMode(echo, INPUT);
sg90.attach(8);

}

void loop() { 
digitalWrite(trig, LOW);
delay(2);
digitalWrite(trig, HIGH);
delayMicroseconds(10);
digitalWrite(trig, LOW);
duration = pulseIn(echo, HIGH);
distance = duration/58.2;

if(distance<30){
  sg90.write( LOW);
  delay(4500);
  Serial.print(distance);
}
else {
  sg90.write(180);
  delay(50);
}
}



悲伤的错误:

error: request for member 'write' in 'sg90', which is of non-class type 'int'
   sg90.write(180);

ps:我是编码初学者

有人可以帮我快点``

c++ coding-style arduino-uno
1个回答
0
投票

您不想盲目复制外星人代码。也许你想要

#include <Servo.h> //librarie de servo moteur
enum Pin {
  int echo = 7,
  int trig = 6,
  int sg90 = 8,
};

int distance;
int duration;

Servo sg90;

void setup() {
pinMode(Pin::trig, OUTPUT);
pinMode(Pin::echo, INPUT);
sg90.attach(Pin::sg90);
}

void loop() { 
digitalWrite(Pin::trig, LOW);
delay(2);
digitalWrite(Pin::trig, HIGH);
delayMicroseconds(10);
digitalWrite(Pin::trig, LOW);
duration = pulseIn(Pin::echo, HIGH);
distance = duration/58.2;

if(distance<30){
  sg90.write( LOW);
  delay(4500);
  Serial.print(distance);
}
else {
  sg90.write(180);
  delay(50);
}
}
最新问题
© www.soinside.com 2019 - 2024. All rights reserved.