Sou novo no uso do Arduino e tenho um Arduino Uno. Para os projetos que fiz, usei apenas os pinos digitais.
Estou construindo um pequeno veículo que usa motores de passo. Fiquei sem pinos para controlar os motores deste veículo. Para que servem os pinos analógicos? É possível usar pinos analógicos para controlar o resto dos motores de passo que conecto ao Arduino ou terei que comprar um Arduino maior do que o Arduino Uno para controlar esta engenhoca?
Resposta
Sim, os pinos analógicos no Arduino podem ser usados como saídas digitais.
Isso está documentado na documentação dos pinos de entrada do Arduino , na seção Mapeamento de pinos:
Mapeamento de pinos
Os pinos analógicos podem ser usados de forma idêntica aos pinos digitais, usando os aliases A0 (para entrada analógica 0), A1, etc. Por exemplo, o código seria semelhante a este para defina o pino analógico 0 para uma saída e para defini-lo como ALTO:
pinMode (A0, SAÍDA);
digitalWrite (A0, ALTO);
Comentários
- Sim … desculpe. Lembro que era tarde quando postei isso e estava ficando com sono e perdendo a concentração. Removi o comentário.
Resposta
Você sempre pode usar os pinos analógicos para escrita digital.
-
digitalRead()
funciona em todos os pinos. Ele apenas arredondará o valor analógico recebido e o apresentará a você. SeanalogRead(A0)
for maior ou igual a 512,digitalRead(A0)
será 1, senão 0. -
digitalWrite()
funciona em todos os pinos, com o parâmetro permitido 0 ou 1.digitalWrite(A0,0)
é o mesmo queanalogWrite(A0,0)
, edigitalWrite(A0,1)
é o mesmo queanalogWrite(A0,255)
-
analogRead()
funciona apenas em pinos analógicos. Pode assumir qualquer valor entre 0 e 1023. -
analogWrite()
funciona em todos os pinos analógicos e todos digitais PWM pins. Você pode fornecer qualquer valor entre 0 e 255.
Os pinos analógicos permitem que você leia / grave valores analógicos – basicamente, em vez de fornecer uma tensão de 0 ou 5 (como no digital) , eles podem fornecer uma faixa de tensões entre 0 e 5 (como entrada e saída). Observe que a tensão durante a saída analógica é apenas a tensão observada com um multímetro. Na realidade, os pinos analógicos enviam pulsos de sinais de 0 V e 5 V para obter uma saída que “parece” analógica (isso é PWM).
Em relação ao número de pinos: tenha em mente que os pinos de PWM podem ser usado para saída analógica. Se ficar sem pinos, você pode usar a multiplexação para fazer mais. Não é necessário obter outro Arduino.
Comentários
- AnalogWrite () não produz tensões de saída entre 0 a 5 (exceto no Devido)! AnalogWrite () altera apenas a modulação da largura de pulso do sinal. A tensão de saída ainda é 5 volts (ou o que for VCC). Os pinos marcados com ” analógico ” produzirão apenas 0 V ou 5 V. Eles não são variáveis e são anotados
- @ JamesC4S: Bom ponto, editado. Obrigado 🙂
- Muito melhor! 🙂
- digitalRead () e digitalWrite () em pinos analógicos são mais lentos? Se digitalRead () arredondar o valor, posso imaginar que seja bem mais lento do que digitalRead () em um pino digital?
- Isso é muito conciso e informativo, obrigado, no entanto, acredito que haja um pequeno erro. De acordo com os bons documentos :
the Arduino (ATmega) will report HIGH if: a voltage greater than 3.0V is present at the pin (5V boards)
que contradiz a declaração desta postagemIf analogRead(A0) is greater than or equal to 512, digitalRead(A0) will be 1, else 0
.
Resposta
Os pinos analógicos no Arduino podem ser usados como pinos digitais, conforme apontado por Anindo Ghosh.
No entanto, mesmo se você ficar sem pinos para controlar seus motores de passo, você realmente não precisa comprar outra placa. Você pode simplesmente usar um componente intermediário, como um registro ou um multiplexador para controlar o motor de passo apropriado.
Resposta
Se você puder pagar e realmente quiser tornar o trabalho com um stepper super fácil verifique o Easy Stepper . Fiquei muito satisfeito.
Da página de código de exemplo
http://www.sc-fa.com/blog/wp-content/uploads/2013/04/20130414-080645.jpg
Example 1: Basic Arduino setup This is the most basic example you can have with an Arduino, an Easy Driver, and a stepper motor. Connect the motor"s four wires to the Easy Driver (note the proper coil connections), connect a power supply of 12V is to the Power In pins, and connect the Arduino"s GND, pin 8 and pin 9 to the Easy Driver. Then load this sketch and run it on your Arduino or chipKIT: void setup() { pinMode(8, OUTPUT); pinMode(9, OUTPUT); digitalWrite(8, LOW); digitalWrite(9, LOW); } void loop() { digitalWrite(9, HIGH); delay(1); digitalWrite(9, LOW); delay(1); }
Também da mesma página, aqui estão alguns exemplos de código para operar dois motores com dois placas easystepper, com aceleração / desaceleração: http://www.sc-fa.com/blog/wp-content/uploads/2013/04/20130414-081018.jpg
#include <AccelStepper.h> // Define two steppers and the pins they will use AccelStepper stepper1(1, 9, 8); AccelStepper stepper2(1, 7, 6); int pos1 = 3600; int pos2 = 5678; void setup() { stepper1.setMaxSpeed(3000); stepper1.setAcceleration(1000); stepper2.setMaxSpeed(2000); stepper2.setAcceleration(800); } void loop() { if (stepper1.distanceToGo() == 0) { delay(500); pos1 = -pos1; stepper1.moveTo(pos1); } if (stepper2.distanceToGo() == 0) { delay(500); pos2 = -pos2; stepper2.moveTo(pos2); } stepper1.run(); stepper2.run(); }
Comentários
- Isso realmente não ‘ responde à pergunta; seria melhor como um comentário. Poderia você o detalha para que responda à pergunta?
- @AnnonomusPerson: O EasyDriver Stepper Motor Driver aparece como um produto ativo, em estoque e tudo mais.
Resposta
Adicionando como resposta, porque não posso comentar.
Para responder brevemente, sim, você pode. Por favor, consulte à Resposta de Anindo Ghosh “s sobre como fazê-lo.
Observe no entanto, para o Arduino Nano , os pinos A6 e A7 são analógicos apenas e não pode ser usado no modo digital.
Comentários
- Observe que esta resposta contém quase apenas um link. Links / sites podem ficar obsoletos, tornando esta resposta inútil. Guarde o link, mas por favor resuma ou cite as partes relevantes do site.
- @Huisman Para ser justo, os links para outras questões no EE.SE têm menos probabilidade de ser obsoletos ou se tornarem inacessíveis; mas um breve resumo certamente melhoraria a resposta.
- @JYelton Eu não ‘ acesse o link, mas você ‘ está certo.