Garagistas.....
Estou tentando usar as portas Analogicas A6 e A7 do Arduino Nano V.3.0 como porta Digital de Saida ou Entrada DESTA FORMA:
int S1 = 21; // para A7
int S2 = 20; // para A6
int S3 = 19; // para A5
..
int S8 = 14; // para A0
// Aqui defino como portas de saida
pinMode(S1, OUTPUT);
pinMode(S2, OUTPUT);
pinMode(S3, OUTPUT)
..
pinMode(S8, OUTPUT)
;
As portas A0 até A5 fuincionam perfeitamente.
As portas A6 e A7 não funcionam.
Alguem sabe o motivo ?????
Tags:
Os pinos de entrada analógica podem ser também usados como pinos digitais, referidos como A0, A1, etc. As exceções são os pinos A6 e A7 das placas Arduino Nano, Pro Mini, e Mini, que podem ser usadas apenas como entradas analógicas.
Olá, Carlos Henrique.
Como já mencionado pelo Ricardo, os pinos A6 e A7 das placas Arduino Nano, Pro Mini, e Mini não podem ser usados como pinos digitais.
Uma solução para isto seria o código a seguir, onde a variável booleana virtualInputA6 faz o papel da leitura digital no pino A6, por exemplo.
#define ANALOG_MAX 1023
#define HYSTERESIS 200
_Bool vitualInputA6 = false ;
void setup() {
// put your setup code here, to run once:
}
void loop() {
// put your main code here, to run repeatedly:
if ( analogRead( A6 ) > ( ANALOG_MAX / 2 ) )
{
vitualInputA6 = true ;
}
else if ( analogRead( A6 ) < ( ( ANALOG_MAX / 2 ) - HYSTERESIS ) )
{
vitualInputA6 = false ;
}
}
Mas há uma desvantagem: As leituras analógicas nas placas citadas só estão disponíveis a cada 100 µs e, portanto, você teria de acrescentar um código ao mostrado acima para que o intervalo entre leituras fosse maior do que 100 µs.
Fazer as leituras em intervalos menores pode comprometer a operação do próprio conversor A/D do µControlador e causar interferência em outras leituras, tanto analógicas quanto digitais.
D.T. Ribeiro
Bem-vindo a
Laboratorio de Garagem (arduino, eletrônica, robotica, hacking)
© 2024 Criado por Marcelo Rodrigues. Ativado por