Bienvenida al curso

1

Enlaces del taller IoT

2

Qué aprenderás sobre el desarrollo de hardware con Arduino

Introducción al hardware libre

3

¿Qué es Arduino y qué placas hay?

4

¿Cómo se desarrolla el Hardware?

5

¿Cuál es el software para diseño mecánico?

6

Elección del software a utilizar

7

Limitaciones de Arduino y qué es el hardware libre

8

Reto 1: Para un proyecto de IoT, ¿Cuál tarjeta Arduino utilizarías?

9

¿Cómo funciona el Curso de Desarrollo de Hardware con Arduino?

10

Lista de Materiales o Componentes a Utilizar

Sensores, Actuadores y Procesadores

11

Sensores, actuadores y procesadores

12

Diferentes tipos de sensores según la salida

13

Diferentes tipos de sensores según la aplicación

14

Diferentes tipos de actuadores

Introducción a la electrónica

15

Diferencias entre electricidad y electrónica

16

Tipos de componentes electrónicos

17

Más tipos de componentes electrónicos

18

Limitando la corriente para evitar quemar un led

Manos a la obra

19

Puertos de un arduino y sus funciones

20

Qué es un protoboard

21

Estructura general de un programa en Arduino y hello world con un LED

22

Variables y Constantes Globales

23

Manejo de librerías y funciones

24

Manejo de valores analógicos: uso del potenciómetro

25

Uso del monitor serial

26

PWM y señales analógicas

27

Un control de color RGB e intensidad lumínica para una lampara de mesa

28

Uso de push buttons

29

Monitor de temperatura con Arduino (uso de LM35 y un lcd 16x2)

30

Continuando con el monitor de temperatura con Arduino

31

Finalizando con el monitor de temperatura con Arduino

32

Reto: Crea tu semáforo con Arduino

Automatización de procesos

33

Cómo generar movimiento y uso de motores

34

Cómo generar movimiento y servomotores

35

Agregando un potenciométro para controlar la posición del Servomotor

36

Robot evasor de obstáculos

37

Continuando con el Robot evasor de obstáculos

38

Terminando con el Robot evasor de obstáculos

No tienes acceso a esta clase

¡Continúa aprendiendo! Únete y comienza a potenciar tu carrera

No se trata de lo que quieres comprar, sino de quién quieres ser. Invierte en tu educación con el precio especial

Antes: $249

Currency
$209

Paga en 4 cuotas sin intereses

Paga en 4 cuotas sin intereses
Suscríbete

Termina en:

11 Días
3 Hrs
48 Min
9 Seg

Uso de push buttons

28/38
Recursos

En este momento conocemos cómo manejar entradas analógicas como la de un potenciométros. Ahora, vamos a conocer cómo funcionan las entradas digitales.

Aportes 22

Preguntas 12

Ordenar por:

¿Quieres ver más aportes, preguntas y respuestas de la comunidad?

No se ensucian los circuitos con tanta tierra?

Donde esta la imagen que dice estar en el sistema de archivos en el minuto 6:16

<code>int rojo1 = 11;
int verde1 = 10;
int amarillo1 = 9;
int gira1 = 8;
int peaton1= 13;
int boton1 = 7;
int rojo2 = 6;
int verde2 = 5;
int amarillo2 = 3;
int gira2 = 2;
int peaton2= 12;



void setup() {
  // put your setup code here, to run once:
  pinMode(rojo1, OUTPUT);
  pinMode(verde1, OUTPUT);
  pinMode(amarillo1, OUTPUT);
  pinMode(gira1,OUTPUT);
  

  pinMode(rojo2, OUTPUT);
  pinMode(verde2, OUTPUT);
  pinMode(amarillo2, OUTPUT);
  pinMode(gira2,OUTPUT);
  pinMode(boton1, INPUT_PULLUP);
  
  
  
}

void loop() {
  // put your main code here, to run repeatedly:
  
 if (digitalRead (boton1)==LOW)
 {
    digitalWrite(rojo1,HIGH);
    digitalWrite(verde1,LOW);
    digitalWrite(amarillo1,LOW);
    digitalWrite(rojo2,HIGH);
    digitalWrite(amarillo2,LOW);
    digitalWrite(verde2,LOW);
    delay(5000);
  
  }
  
  
  else {
  digitalWrite(rojo1,HIGH);
  digitalWrite(verde1,LOW);
  digitalWrite(amarillo1,LOW);
  digitalWrite(rojo2,LOW);
  digitalWrite(amarillo2,LOW);
  digitalWrite(verde2,HIGH);
  delay(2000);


  analogWrite(rojo1,255);
  analogWrite(amarillo1,0);
  analogWrite(verde1,255);
  analogWrite(rojo2, 255);
  analogWrite(amarillo2,0);
  analogWrite(verde2, 255);
  delay(1500);
  
  digitalWrite(rojo1,LOW);
  digitalWrite(amarillo1,LOW);
  digitalWrite(verde1,HIGH);
  digitalWrite(rojo2,HIGH);
  digitalWrite(verde2,LOW);
  digitalWrite(amarillo2,LOW);
  delay(3000);

  digitalWrite(rojo1,LOW);//gira para ambos caminos giran en diferentes direcciones
  digitalWrite(amarillo1,HIGH);//PRENDE EL AZUL DEL LED DE TRES ESTADOS
  digitalWrite(verde1,LOW);
  digitalWrite(rojo2,LOW);
  digitalWrite(verde2,LOW);
  digitalWrite(amarillo2,HIGH);
  delay(2000);
  
  analogWrite(rojo1,255);
  analogWrite(amarillo1,0);
  analogWrite(verde1,255);
  analogWrite(rojo2, 255);
  analogWrite(amarillo2,0);
  analogWrite(verde2, 255);
  delay(1500);
  }

}

A veces los botones suelen ser demasiado sensibles al ruido que generamos al pulsarlos, este efecto se es conocido como debounce y cuando se necesita pulsos precisos puede ser bastante molesto. Hay dos formas de solucionar esto, mediante software con el uso de retardos, o mediante hardware con el uso de un capacitor de 1uF (generalmente electrolítico) en paralelo al pulsante.

Las resistencias “pull-up” (y “pull-down”) son resistencias normales, solo que llevan ese nombre por la función que cumplen: sirven para asumir un valor por defecto de la señal recibida en una entrada del circuito cuando por ella no se detecta ningún valor concreto (ni ALTO ni BAJO), que es lo que ocurre cuando la entrada no está conectada a nada (es decir, está “al aire”). Así pues, este tipo de resistencias aseguran que los valores binarios recibidos no fluctúan sin sentido en ausencia de señal de entrada.

En tinkercad, que terminal debo de utilizar para conectar el boton al arduino?
(terminal 1a, terminal 2a, terminal 1b, terminal 2b)
gracias

dio pero no saque la foto porque es dificil sostener jajaja

Muchas gracias por esta explicación. Siempre había renegado con las resistencias! 😛

muy bueno

yo estoy de acuerdo con abelgaillard

La resistencia pull-down se pone mas cerca de la tierra y la resistencia pull-up se pone mas cerca de la fuente ( 5v)

Verdaderamente estoy aprendiendo

En lugar de una resistenci pull up se puede sustituir por un diodo???

Hola que tal , alguno podria ayudarme tengo un error de complicacion de la tarjeta de Arduino o ese el error que me meniciona cuando compilo, estuve buscando en internet y menciona que hace falta la libreria Arduboy la cual ya instale pero aun tengo el problema .
Alguno sabe que mas puedo hacer para poder corregir el problema .
Nota : Ya revise la sintaxis del programa y la tengo tal cual como muestra en el video.

Aquí se tienen que aplicar conocimientos de programación y electronica en conjunto.

El profesor abarca los temas de una forma bien abstraida, yo tengo bases de electricidad así que no se me complicó tanto la parte electrónica y justamente estoy aprendiendo la parte de programación y es bastante interesante…

Algo que les recomiendo aplicar mucho es la programación orientada a objetos dentro de arduino, eso facilitaría mucho varias cosas…

intente hacer un interruptor usando el pulsador y me quedo algo así, pero no puedo bajar mucho más de los 500ms de delay sino el programa deja pegado el led en HIGH. ```js int ledRed = 13; int button_1 = 12; int value = 1; int logic = 1; void setup() { // put your setup code here, to run once: pinMode(ledRed, HIGH); pinMode(button_1, INPUT_PULLUP); Serial.begin(9600); } void loop() { // put your main code here, to run repeatedly: logic = digitalRead(button_1); //toma los valoes de 0 y 1 if (logic == 0 && value == 1){ value = 0; Serial.print("switching to LOW__"); Serial.println(value); delay(500); } else if (logic == 0 && value == 0){ value = 1; Serial.print("switching to HIGH__"); Serial.println(value); delay(500); } else if(value == 0){ digitalWrite(ledRed, LOW); } else if (value == 1) { digitalWrite(ledRed, HIGH); } } ```int ledRed = 13;int button\_1 = 12; int value = 1;int logic = 1;void setup() {  // put your setup code here, to run once:  pinMode(ledRed, HIGH);  pinMode(button\_1, INPUT\_PULLUP);   Serial.begin(9600);} void loop() {  // put your main code here, to run repeatedly: logic = digitalRead(button\_1); //toma los valoes de 0 y 1   if (logic == 0 && value == 1){      value = 0;      Serial.print("switching to LOW\_\_");      Serial.println(value);      delay(500);  }    else if (logic == 0 && value == 0){        value = 1;        Serial.print("switching to HIGH\_\_");        Serial.println(value);        delay(500);    }       else if(value == 0){        digitalWrite(ledRed, LOW);      }         else if (value == 1)        {            digitalWrite(ledRed, HIGH);          }   }
Yo no tenia el boton que se usa en la clase pero con el boton que esta integrado en el joystick que tenía sí pude, aquí está el mismo codigo: ```c# int boton = 10; int Led = 11; void setup() { // put your setup code here, to run once: pinMode(Led, OUTPUT); pinMode(boton, INPUT_PULLUP); Serial.begin(9600); //Las entradas analogicas no requieren inicialización } void loop() { // put your main code here, to run repeatedly: Serial.println(digitalRead(boton)); if(digitalRead(boton) == LOW){ digitalWrite(Led, HIGH); }else{ digitalWrite(Led, LOW); } } ```
La función del resistor pull up se basa en que la corriente eléctrica fluye hacía el camino de menor resistencia por lo que si hay una resistencia en una dirección y un camino en otra irá por el camino todo el tiempo mientras que de otra manera se iría por ambos ocasionando un corto circuito por el alto nivel de amperaje necesario para esto. Si se pone un botón en el camino sin resistencia se puede bloquear el camino para hacer que la corriente fluya hacía el otro de manera que pueda alternar en ambas direcciones como el diagrama del ejemplo. Es un botón de dos estados, simple y fijo, cuando se abre la corriente fluye hacía tierra GND porque el otro camino es de mayor resistencia y cuando se cierra o bloquea al presionar el botón la corriente va hacía el camino de la alimentación VCC Al programar en el IDE, se utiliza el comando `pinMode(boton, INPUT_PULLUP);` para indicar que se trata de un resistor pull up y para leerlo o escribir sobre él se utilizan los comandos `digitalRead(boton)` o `digitalWrite(boton, HIGH/LOW)`

Muy Buena Explicación

identar el codigo no es nada del otro mundo PERO ES ALGO BASICO Y NECESARIO AL ESCRIBIRLO…

Pull-up

Creo que la ventaja de el pull-up, en los avr, es que nos ahorramos una resistencia en nuestro circuito.
Yo use el arduino nano every y programando directamente los registros, es algo parecido a las funciones en Arduino, y las interrupciones para que la cpu este en espera y no trabajando.