Отправить аналоговое значение от Arduino A на аналоговый вывод Arduino B - PullRequest
0 голосов
/ 01 марта 2019

Я пытаюсь прочитать значения с датчика LM35 на Arduino UNO и отправить его на другую плату Arduino через вывод PWM и аналоговый вывод

enter image description here

Когда я запускаю этот проект, Serial Emulator Arduino A показывает правильные значения, но Second всегда равен 0.00.Вот мой первый код Arduino:

int pin = 2;
int TempPin = A0;
int pinAnalog = 3;

void setup() {
   pinMode(3, OUTPUT);
   Serial.begin(9600);
}
void loop() {
   float tmp = analogRead(TempPin);
   float Result = (tmp/1024.0) * 500;
   Serial.println(Result);
   analogWrite(pinAnalog, Result);
   delay(3000);
}

А вот мой второй код Arduino:

void setup() {
    Serial.begin(9600);
}
void loop() {
    float res = analogRead(A0);
    Serial.println(res);
    delay(3000);
}

Что не так с моим проектом или кодом?

1 Ответ

0 голосов
/ 01 марта 2019

Я понимаю, что это только упражнение, так как сам ШИМ не подходит для подачи аналогового чтения.(лучше измерьте длительность импульса, если вы действительно хотите использовать его для передачи данных.)

Для ШИМ с частотой 400 Гц необходимо значение RC, например, 20 мс для разумной фильтрации импульсов ШИМ.

(например, 1 мкФ * 20k)

Когда вы работаете в 3-секундном цикле, также подходят и большие значения.

Кстати: отправитель может быть упрощен до:

const byte inPin = A0;
const byte outPin = 3;

void setup() {
   Serial.begin(9600);
}
void loop() {
  byte tmp = analogRead(inPin)/4;  // 0 .. 255
  analogWrite(outPin, tmp); 
  Serial.println((int)tmp);
  delay(3000);
}
...