Питание для дальномера от любых портов.

vertraut
Offline
Зарегистрирован: 07.01.2016

Необходимо, чтобы дальномер работал от портом A0-A3, где А0-питание, A1-Trig, A2-Echo, A3-земля. Датчик HC-SR04.

#include "Ultrasonic.h"

// sensor connected to:
// Trig - A1, Echo - A2
Ultrasonic ultrasonic(A1, A2);

void setup()
{
  
  Serial.begin(9600);                           // start the serial port
  pinMode(A0, OUTPUT); //GND для кнопки и дополнительного светодиода
  digitalWrite(A0, HIGH);
   pinMode(A3, OUTPUT); //GND для кнопки и дополнительного светодиода
  digitalWrite(A3, LOW);
  
}

void loop()
{
  float dist_cm = ultrasonic.Ranging(CM);       // get distance
  Serial.println(dist_cm);                      // print the distance
  
  delay(100);                                   // arbitary wait time.
}

Но почему-то не работает, если взять питание и зеплю с портов 5v и gnd, то все норм. Кто может подсказать как быть?

vertraut
Offline
Зарегистрирован: 07.01.2016

Неужели никто не сталкивался?

andriano
andriano аватар
Offline
Зарегистрирован: 20.06.2015

5V и GND - это, вообще-то, не порты, а "питание" и "земля" соответственно. И ток через них ограничен возможностями источника питания, а не возможностями портов контроллера.

Посмотрите осциллографом, что творится на А0 и А3, когда Вы пытаетесь их использовать в качестве питания.

Tomasina
Tomasina аватар
Offline
Зарегистрирован: 09.03.2013

померяй A3 - на нем есть 5 Вольт?

Вообще нагрузка по питанию уже на пределе для пина, попробуй питать от двух запаралленных пинов, а с GND сделай постоянную связь.

void setup()
{
  
  Serial.begin(9600); 
  pinMode(A0, OUTPUT); //A0 и A3 подключены к Vcc датчика
   pinMode(A3, OUTPUT); // GND датчика подключен напрямую к GND Arduino
  digitalWrite(A0, HIGH); // подаем +5 на датчик
  digitalWrite(A3, HIGH); // дублируем +5 на датчик  
}