когда 3 компонента на Arduino nano работают вместе, один из них не работает
Когда я делал проект настольного вентилятора, я сначала пытался поставить на него серводвигатель, двигатель 5 В с потенциометром и DHT-11
, серводвигатель и DHT-11 работают, но двигатель 5 В с потенциометром-нет.
Я подумал, что это может быть проблема с источниками питания. кстати, я использую прямые источники питания от USB-кабеля моего ноутбука
, а затем просто аннотировал весь код для DHT11, чтобы он перестал работать.
Затем он начинает сообщать об ошибке с моим myservo.attach(11);
который был
exit status 1
'myservo' does not name a type
Я просто схожу от этого с ума. Мне сейчас не нужны эти кредиты по электронике и робототехнике.
/*Arduino nano works
DHT11-TEMP works
servomotor for oscillating works
fan motor and speed control wrong
*/
/*#include "DHT.h" //DHT11 <Variable and library settings>
#define DHTPIN 10
#define DHTTYPE DHT11
DHT dht(DHTPIN, DHTTYPE); */
#include <Servo.h> // oscillating <library settings>
Servo myservo;
int pos = 0;
int pwmPin = 12; //pin 12, power to motor //fan motor and speed control <library settings>
int pot = A1; // input from variable resistance
int c1 = 0; // recording in variable c1
int c2 = 0; // recording in variable c2
/*void setup() {
Serial.begin(9600); //DHT11< setup>
Serial.println(F(" DHT-11 STARTING!"));
dht.begin(); */
myservo.attach(11); /*oscillating< setup>*/
pinMode(pwmPin, OUTPUT); /*fan motor and speed control <setup>*/
pinMode(pot, INPUT);
}
void loop() {
/*
delay(1000); //DHT11< loop>
float h = dht.readHumidity();
float t = dht.readTemperature();
float f = dht.readTemperature(true);
if (isnan(h) || isnan(t) || isnan(f)) {
Serial.println(F("Failed to read from DHT sensor!"));
return;
}
float hif = dht.computeHeatIndex(f, h);
float hic = dht.computeHeatIndex(t, h, false);
Serial.print(F(" Humidity: "));
Serial.print(h);
Serial.print(F("% Temperature: "));
Serial.print(t);
Serial.print(F("C "));
Serial.print(f);
Serial.print(F("F Heat index: "));
Serial.print(hic);
Serial.print(F("C "));
Serial.print(hif);
Serial.println(F("F"));
*/
for(pos = 0; pos <= 180; pos += 1) /*oscillating< loop>*/
{
myservo.write(pos);
delay(30);
}
for(pos = 180; pos>=0; pos-=1)
{
myservo.write(pos);
delay(30);
}
{
c2= analogRead(pot); /*fan motor and speed control<loop>*/
c1= 1024-c2; // subtracts c2 from 1000 ans saves the result in c1
digitalWrite(pwmPin, HIGH);
delayMicroseconds(c1);
digitalWrite(pwmPin, LOW);
delayMicroseconds(c2);
}
}
@Azu, 👍0
Обсуждение0
Смотрите также:
- Сервопривод продолжает сбрасывать положение, когда нет разницы в полученном значении?
- Использование прерывания внутреннего таймера для чтения аналогового датчика
- Радиоуправляемая машинка, которая возвращается в центральное положение, если не нажата левая или правая кнопка
- Может ли arduino nano управлять двумя цепями
- Невозможно выйти из цикла while
- Как заставить сервопривод вращаться на угол больше 180°
- 9 сервоприводов на Arduino Nano?
- Как повернуть серводвигатель на определенный угол?
Вы закомментировали объявление
setup()
, поэтому код, который ранее был внутри него (та часть, которую вы не закомментировали), теперь находится вне какой-либо функции. Это не работает в C/C++. Не комментируйте объявлениеsetup()
. Хотя это чисто синтаксическая проблема C/C++ и, следовательно, не по теме для этого сайта., @chrislПри написании кода позаботьтесь о его правильном форматировании. Это будет намного легче найти проблемы и гораздо более понятно для других. Примечание: Я предполагаю, что это происходит не из-за копирования и вставки его из Arduino IDE, потому что некоторые части отформатированы правильно, а другие-нет или, кажется, нет., @Python Schlange