top of page
ESP_EsquemaDigital.png
!
prohibido
prohibido

Entrades i Sortides Digitals

prohibido
!

Els GPIO 6, 7, 8, 9, 10 i 11 NO es poden utilitzar com a entrades ni com a sortides (connectats a la memòria Flash)

Els GPIO 34, 35, 36 i 39 només es poden utilitzar com a entrada.

Els 22 GPIO restants es poden utilitzar com a entrada i com a sortida digital. 

GPIO (General Purpose Input/Output, Entrada/Sortida de Propòsit General) és un pin sense propòsit específic definit.

Control de l'encesa d'un LED

Digital_01.png

Recordeu la polaritat del LED

(càtode -, ànode +)

Reciclem l'sketch Blink que hem fet per al led integrat i adaptem-lo a la nova situació:

PolaritatLed.png

int LedPin = 5;  // definim el pin com a variable

void setup ()  // funció de configuració 
{ 
  pinMode (LedPin, OUTPUT);  // configuració del pin com a sortida 
}

void loop ()  // execució en bucle  

  digitalWrite (LedPin, HIGH);   // activa la sortida (led encés) ...

  delay (1000);                            // durant 1 segon 
  digitalWrite (LedPin, LOW);  // desactiva la sortida (led apagat) ...

  delay (1000);                           // durant 1 segon 

Afegim un polsador

Digital_02.png

El polsador, com tots els sensors, ha de rebre alimentació.

Per tant, s'ha de connectar al pin 3.3V.

A més, per tal d'evitar els rebots i obtenir un funcionament estable

cal connectar-lo a GND a través d'una resistència de 10 kΩ.

FrangesColors.PNG

Control de l'encesa d'un led amb un polsador

La idea:

SI polsador premut → led ON

SI NO ( SI polsador NO premut) → led OFF

if (condició) {accions1}

else {accions2}

SI es compleix la condició, es realitzen unes accions,

i si no es cumpleix, es realitzen unes altres.

 La igualtat lògica == indica que el valor dels dos termes és el mateix.

     El valor d'una entrada i d'una sortida es pot expressar amb:

     HIGH o 1, LOW o 0:

     digitalWrite (LedPin, HIGH);  ==  digitalWrite (LedPin, 1);

     if (ValorSensor == 1)  ==  if (ValorSensor == HIGH)

// valors amb que treballarem:

const int BotoPin = 1; 

const int LedPin = 5;

void setup ()  
{ 
  pinMode (BotoPin, INPUT);     // configuració del pin com a entrada 

  pinMode (LedPin, OUTPUT);   // configuració del pin com a sortida 
}

void loop ()  

  // desa el valor de la lectura del pin d'entrada en una variable:
  int ValorSensor = digitalRead (BotoPin); 

  
  if (ValorSensor == 1)  // SI botó premut (lectura 1 o HIGH) ...  
 

  { digitalWrite (LedPin, HIGH); }  // encén led  

  else  // SI NO (botó no premut) ...

  { digitalWrite (LedPin, LOW); }  // apaga led
  delay (30);  // petita pausa per estabilitzar 

Altres sensors digitals

if (ValorSensor == 1) {accions1}

else {accions2}

SensorsDigitals.png
SensorsDigitals.png
SensorsDigitals.png
SensorsDigitals.png
SensorsDigitals.png
SensorsDigitals.png

Sensor de contacte

Sensor tàctil

Sensor d'inclinació (tilt)

Foto interruptor

Sensor òptic reflexiu

Sensor de moviment (PIR)

bottom of page