Platzi
Platzi

¡Invierte en ti y celebremos! Adquiere un plan Expert o Expert+ a precio especial.

Antes: $349
$259
Currency
Antes: $349
Ahorras: $90
COMIENZA AHORA
Termina en: 16D : 6H : 49M : 24S

Debes tener cuenta en Platzi

Para ver esta clase abierta debes iniciar sesión

¿Cómo programar un Arduino?28/36

jajajaja "El codigo es ambicioso, HAGAMOS TITILAR DOS LEDS!" >:)  

🐱‍💻 Siguiendo el proceso del proyecto.
arduino.png

int amarillo = 13;
int rojo = 7;
int milisegundos = 300;

void setup() {
  pinMode(amarillo, OUTPUT);
  pinMode(rojo, OUTPUT);
}

void loop() {
  digitalWrite(amarillo, HIGH);
  digitalWrite(rojo, LOW);
  delay(milisegundos);
  digitalWrite(amarillo, LOW);
  digitalWrite(rojo, HIGH);
  delay(milisegundos * 2);
}

vamos a hacer algo ambicioso
![](momentos grasiosos 6.PNG)
hacer titillar DOS LEDS !
![](momentos grasiosos7.PNG

o acaso tenias algo mas ambicioso
![](momentos grasiosos8.PNG
freddy grasias por enseñaros con tanta diversion

  • Lenguajes de Bajo Nivel : Lenguajes cuyas interpretaciones están mas cerca al lenguaje maquina permitiendo tener una mayor interacción y velocidad con el hardware ej: C , C++.
  • Lenguajes de Alto Nivel : Lenguajes con instrucciones mas fáciles de escribir y leer para una persona que requieren interpretes para convertirse en lenguaje maquina ej: Ruby , Python , JavaScript.
  • Entre mas alto sea el nivel del lenguaje de programación mas bajo es su curva de aprendizaje.
  • Lenguaje Maquina : Codigo binario o hexadecimal directamente interpretados por el microprocesador de el computador difíciles de leer para una persona.
  • Lenguaje Ensamblador o Assembler: Expresa las instrucciones que queremos darle al microprocesador de una forma mas natural para la persona y a la vez mas cercana a la maquina. Es un lenguaje de bajo nivel
  • Unity 3D: Funciona con JS o C#, puedes crear con el juegos como pokemon Go o juegos de VR. Para mira los videos de platzi.
  • Java: Se parece a JS pero es de menos nivel.
  • IOT (Internet Of Things/Internet De Las Cosas): Es basicamente conectar a internet objeto del mundo real, como cepillos de dientes, zapatos, etc…
  • Arduinos y Rasperry Pi: Son basicamente ordenadores muy pequeños que podemos programar desde 0. En arduino se programa con C
  • C: Es un lenguaje de bajo nivel lo puedes ver en el curso de algoritmos. De este lenguaje se derivan Java, Javascript, C#, unity 3D, etc…
  • JavaScript crecio tanto que ahora esta incluso en el lado del servidor y en hardware. Gracias a node js podemos agarrar js y llevarlos a aplicaciones embeebidas (Arduinos, etc…) o al servidor.
  • Podemos programar una aplicacion web completa con node.js. Gracias a node podemos programar js para el navegador y para el servidor. Una de las cosas magicas de node es que podemos incluso conectarnos a hardware externo.
  • Autodesk circuits y tinkercad son 2 de los mejores simuladores de Arduino:
    https://circuits.io/
    https://www.tinkercad.com/
  • System on a Chip (SoC): Es un circuito integrado que incorpora muchos componentes de la computadora en un solo chip: la CPU, la memoria, la memoria RAM, etc… Aqui es donde le vamos a subir un S.O.
  • Los voltios es como la cantidad de agua, por ejemplo con 5V nosotros no podemos encender un coche pero si un led, de hecho es demasiado para un led.
    Cuando la electricidad es demasiado fuerte el led puede calentarse y quemarse
  • Resistencia: Lo que hacen es bajar la potencia de la electricidad para que no se caliente
  • breadboard (protoboard): Es un dispositivo para prototipado temporal sin soldadura con componentes electrónicos y probar diseño de circuitos. Son formas en las que los cables estan organizados por dentro.
  • Puertos analogos: Permiten recibir electricidad desde el circuito
  • El led es un diodo y esta formado por Anodo y Catodo:
    Ánodo: Parte positiva (+)
    Se identifica con la pata más larga
    Cátodo: Parte negativa (-)
    Se identifica con la pata más corta
  • pinMode: Es una funcion interna de arduino que recibe 2 parametros (puerto a prender, recibir o enviar electricidad)
  • OUTPUT: Envia electricidad
  • INPUT: Recibe electricidad
  • digitalWrite: Es la forma de enviar electricidad en Arduino y le pasamos 2 parametros (puerto a prender, voltage a mandar)
  • Digital y Analogo: Digital es que ustedes mandan 1 o 0, es decir toda la electricidad o nada. Y analogo es que ustedes mandan ondas pueden mandar 3V, 3.5V, 0.5V, 5, 0, etc… es decir una onda.
  • HIGHT: Significa que le mandamos toda la electricidad (5V, en este caso porque estamos usando la salida de 5V), es decir encendido.
  • LOW: En el digital cuando UNO LE PASA UNA BAJA INTENSIDAD, EN REALIDAD LE ESTA MANDANDO 0V. ES CONFUSO PERO ASI ES LA PROGRAMACION. Entonces LOW significa que le mandamos nada (0V), es decir que no le mandamos electricidad, esta apagado.
  • delay: significa espera y por parametro la cantidad que yo quiero que espere. Que ya creamos arriba como la variable milisegundos con un valor de 500. ENTONCES CON ESTA LINEA EL CODIGO VA A ESPERAR 500 MILISEGUNDOS ANTES DE EJECUTAR LA SIGUIENTE FUNCION

“En ingles se llaman “jumpers” pero en realidad es un pinche cable” xD

When compras el arduino but no te alcanza para la protoboard…jajajajaja

421285264246302957.jpg

FUE CONSTRUIDO CON DOS MOTORES, UN SENSOR DE LUZ Y UN SENSOR DE APROXIMACIÓN.
EL CARRITO SE MUEVE CONFORME EXISTA LUZ, SI LLEGA A TOPAR CON PARED CON DISTANCIA DE 15 cm, DA VUELTA A LA DERECHA. SI SE OBSCURECE O NO ENCUENTRA LUZ, EL CARRO SE DETIENE.
SIMPLE PERO DIVERDITO.
arduino.jpg

ahora ya puedo hacer las luces de navidad XD

interesante soy antropologa y me intereso esto desde que un amigo programador me dijo que yo no entenderia lo que es programacion, excelente curso y gracias a freddy entendi mucho mas…

Platzi --> https://circuits.io/circuits/2789256-the-unnamed-circuit#breadboard 

Buena clase, pero un detalle --> En Gameboy no se llamaba Pokémon Go, era Pokemon Azul/Rojo y había 151 pokémons no 250.

Gracias Freddy: Mi simulador

Así quedo, aunque aumente algo mas que el LED:
G.jpg

Excelente explicación.
![](arduino.JPG

Pueden conseguir el simulador del siguiente link: https://www.tinkercad.com

Para el que quiera usar un simulador, acá tiene uno muy completo, encima gratuito: https://www.tinkercad.com/
ardui.png

El proyecto mas grande que hice con un arduino, fue una maquina inyectora de silicon para concreto hidraulico, hay una pequeña empresa que ya utiliza mi prototipo en Texas.

Soy gimnasta y músico, jamás me imaginé estar aprendiendo todo esto y me encanta! Gracias! Mi primer arduino!!! Que emoción!ARDUINO.jpg

En algunos casos(sobre todo en los últimos días) puede resultar complicado conectarse a la plataforma de https://circuits.io/, pues parece que su servidor está sufriendo algo de sobrecarga. Es común que tire un error 502. Por lo tanto he buscado alguna alternativa(aunque no sea tan elegante) para probar el código nativamente y sin un Arduino.
Encontré un software muy liviano (aunque solo funciona en SO Windows ) que realmente me ha dado buenos resultados. Atención: está más enfocado hacia la parte de programación que a la electrónica propiamente dicha, sin embargo es un excelente recurso para testear código.
Es un software libre llamado UnoArduSim, desarrollado por el Profesor Stan Simmons de la Universidad de Queen, al encontrarse con que varios de sus alumnos tenían el mismo problema que yo para acceder a los simuladores online.
Pueden descargarlo aquí (es software libre):
https://www.sites.google.com/site/unoardusim/services/UnoArduSimV1.7.2.zip?attredirects=0&d=1

Y como agregado les dejo un tutorial para comenzar a utilizarlo. Es muy minimalista y simple así que de seguro se les va a hacer sencilla la tarea al menos en sus aspectos básicos.
Tutorial:
https://tallerelectronica.com/2015/04/11/unoardusim-software-de-simulacion-de-arduino-uno/

Siguiendo la clase de @freddier
IMG_20171030_111427.jpg

Para quienes lo vean el 2018 en navidad, felices fiestas!!! 😃

20181225_082634.jpg
platzi.png
int amarillo = 13;//nombra el puerto 13 como amarillo
int rojo = 7;	//nombra el puerto 7 como rojo
int milisegundos = 300; // establece una constante de tiempo
  
  void setup ()//metodo de inicio del sistema
{
  pinMode(amarillo,OUTPUT);
  pinMode(rojo,OUTPUT);//DECLARA QUE EL PIN 7 Y 13
  						//DEL ARDUINO SON SALIDAS
}

void loop ()
{
  digitalWrite(amarillo,HIGH);//el puerto 13 está encendido
  digitalWrite(rojo,LOW);    //el puerto 7 está apagado
  delay (milisegundos);		// pausa el ciclo por 300ms
  digitalWrite(amarillo,LOW);//despues de la Pausa el puerto 13 se apaga
  digitalWrite(rojo,HIGH);  // despues de la pausa el puerto 7 se enciende
  delay (milisegundos);		// pausa el ciclo por 300ms e inicia nuevamente
}```

Muy interesante, desde https://www.tinkercad.com se puede realizar con componentes visuales.
aqui una prueba de un “semaforo”

En mi trabajo, me tocó programar un farmbot, justo lo que dice Freddy en el min 8:50 sobre un robot que riega las plantas, la diferencia es que este ya se comercializa en US y Europa para granjeros, usa un Raspberry Pi y se programa súper simple, denle un vistazo, está genial: farm.bot

https://www.tinkercad.com/ el mejor simulador.

Ya me veo programando y creando mis propios focos para navidad 😃

Captura de pantalla (156).png

Les comparto un breve vídeo de mi proyecto funcionando:
https://www.loom.com/share/4a1a48ba94bd471d9741d22ceaadb33a

para los que no encuentran el simulador,
Descarguenlo de aquí www.tinkercad.com
creen su cuenta, y entren a la sección aprendizaje y cambien de 3D a circuit
y ahi van a ver

Este tipo de aplicaciones usando programación y electrónica cliente/servidor es lo que andaba buscando :)

aqui les tengo un buen simulator de arduinos.
https://www.tinkercad.com/

¿Usar Linux?
Si tu respuesta es sí, y no has podido instalar y hacer funcionar Sketch (IDE Artudino), sigue los siguientes paso:

  1. Si ya lo instalaste mediante el gestor de paquetes, desinstálalo.
    En Ubuntu y similares:
$ sudo apt remove arduino
  1. Ingresa a https://www.arduino.cc/en/Main/Software y descarga la versión para tu sistema operativo, en mi caso usé Linux 64 bit.

  2. Descomprime el archivo .tar.xz (clic derecho -> Extraer aquí)

  3. Abre una terminal en la carpeta donde lo descargaste, por ejemplo en ~/Descargas $

  4. Lo siguientes comandos:

$ sudo mv arduino-* /opt
$ cd /opt/arduino-*
$ sudo chmod +x install.sh
$ sudo ./install.sh
$ sudo ./arduino-linux-setup.sh $USER
$ sudo usermod -a -G dialout $USER
$ sudo chmod a+rw /dev/ttyACM0
  1. Para ejecutar el IDE Arduino, busca “arduino” entre las aplicaciones o escribe en la terminal
$ arduino
  1. Si por algo no se ejecuta, ingresa esta última linea
$ sudo ln -s /opt/arduino-*/arduino /usr/local/bin/arduino

Si estas [email protected] en el significado de alguna linea puedes preguntar y con gusto te contestaré.

miArduino500milisegundos.png me queda claro ya con la practica, aunque sea en simulación , espero pronto comprar la placa.

**Si estan tomando el curso en el año 2018 o posterior y buscan un simulador para arduino usen el circuit simulator de ** TinkerCAD ya que ** circuit.io ** de AUTODESK emigro a el

![](Wiring Components.png

Arduino 1d.png

El codigo es ambicioso!! Hagamos titilar dos leds,
xD

A mi me dio risa cuando dijo "El código es ambicioso!!!"
Yo: Nos va a poner a codificar un código de la nasa!!!

El profe: Hagamos 2!!! LEDS!!! 😃

tiene mucho sentido del humor eso es bueno, me gusta.

Saludos, Un simulador para arduino que les podría ayudar es TinkerCad no deben descargar nada. Espero les ayude

ARDUINO3.PNG

Pinche cable jajaja

Quien en el 2019 tomando este curso

Fue tan hermoso desempolvar lo que utilice en la carrera de Electronica, encontrar mi arduino, mis protoboards quemadas, mis leds,cables, resistencias, etc =’)

8:15 Esa colaboradora se volvió la esposa de Freddy 😱❤️

Yo hice la practica en: www.tinkercad.com

arduino_01.png

Excelente combinación entre Electrónica y programación, gracias Fredy por su gran conocimiento, le deseo muchos éxitos en PLATZI, se que aquí esta el futuro.

Setup es la función que se ejecuta cuando el computador que estamos programando arranca. Loop es una función que se ejecuta todo el tiempo a medida que el ciclo del procesador ocurre.

Mi versión del semáforo:

int amarillo = 13;
int rojo = 7;
int verde = 2;
int milisegundos = 1000;

void setup()
{
	pinMode(amarillo, OUTPUT);
	pinMode(rojo, OUTPUT);
  	pinMode(verde, OUTPUT);
}

void loop()
{
	digitalWrite(amarillo, LOW);
	digitalWrite(rojo, LOW);
  	digitalWrite(verde, HIGH);
	delay(milisegundos*3);
  	digitalWrite(verde, LOW);
	digitalWrite(amarillo, HIGH);
	digitalWrite(rojo, LOW);
	delay(milisegundos);
  	digitalWrite(verde, LOW);
	digitalWrite(amarillo, LOW);
	digitalWrite(rojo, HIGH);
	delay(milisegundos*3);
  	digitalWrite(verde, LOW);
	digitalWrite(amarillo, HIGH);
	digitalWrite(rojo, HIGH);
	delay(milisegundos);
}```

Graaaaacias Freddy por compartir conocimiento 😃

Al final la realidad virtual no era tanto como pensábamos

Se pueden realizar las pruebas con el Arduino Simulator de Tinkercad. Es Genial!

2020-04-24 16_05_42-Window.png

Me encantó 😄

Screenshot_3.png
/* >> La protoboard es una placa de pruebas para electrónica 
que contiene numerosos orificios en los que es posible 
insertar cables y otros elementos electrónicos para montar
circuitos provisionales. La ventaja de este dispositivo es
que no requiere soldar sus componentes para tener un 
circuito operativo.

>> LED :  Light Emitting Diode ó Diodo Emisor de Luz.

>> Es un material semiconductor que es capaz de emitir una 
radiación electromagnética en forma de Luz.

Patita corta = Patita negativa
Patita Larga = Patita positiva 

>> int = Variable con numero entero
>> Pin 13 led amarillo */
int amarillo = 13;
int azul = 7; // Segundo LED
int rojo = 0; // Tercer LED

// Tiempo de parpadeo del Led
int milisegundos = 120;

/*  En lenguaje C, una funcion se inicia con void.

>> Setup (), es la funcion que se ejecuta cuando 
lo que programamos inicia. */
void setup()
{
  /* Esta funcion tiene dos parametros: El puerto que 
  usará, y la funcion. En este caso, Puerto: 13 (Amarillo), 
  Función: Emitir electricidad.  */
  pinMode(amarillo, OUTPUT);
  pinMode(azul, OUTPUT);
  pinMode(rojo, OUTPUT);
}

// Loop es una funcion que se ejecuta todo el tiempo.
void loop()
{
  /* digitalWrite es la forma en la que se emite 
  electricidad en Arduino. Tiene 2 parametros el puerto 
  que se usará y la cantidad de voltaje. En este caso, 
  Puerto: 13 (Amarillo), Voltake: Alto (High)
  HIGH = 5v | LOW = 0v*/
  
  digitalWrite(amarillo, HIGH);
  digitalWrite(azul, LOW);
  delay(milisegundos); // Wait for 1000 millisecond(s)
  
  
  digitalWrite(azul, HIGH);
  digitalWrite(rojo, LOW);
  delay(milisegundos * 2); // Wait for 1000 millisecond(s)
  
  
  digitalWrite(rojo, HIGH);
  digitalWrite(amarillo, LOW);
  delay(milisegundos * 3); // Wait for 1000 millisecond(s)
}

/* >> Los pines de Arduino funcionan por defecto como 
entradas, de forma que no necesitan declararse 
explícitamente como entradas empleando pinMode().

>> Señal Electrica Analógica: Es aquella en la que los 
valores de la tensión o voltaje varían constantemente y 
pueden tomar cualquier valor.

>> Señal Electrica Digital: Es una función usada en la 
function setup() para configurar un pin dado para 
comportarse como INPUT o OUTPUT.  */

comment.png

https://www.tinkercad.com/
en esa pagina esta el simulador del arduino
solo se registran y hacen click en circuits y crean uno

ESTA VIVOOOOOOOOOOOOOOOOOOO
Captura.PNG

Intenet of things IoT: Es conectar a Internet objetos del mundo real, todo esto arranca por el Arduino, estos son maquinas electrónicas pequeñas que son básicamente una PC pequeña que se puede programar desde cero, el arduino se programa con un lenguaje de programación llamado C, de este lenguaje se deriva Java, C++, JavaScript, etc., se puede hacer una aplicación completa con node.js, se puede programar JS para el navegador y para el servidor gracias a node.js y gracias a esto se puede conectar a hardware externo como a un dron.

La placa de auduino tiene un procesador, una memoria ram y un disco, y dentro de ella guarda internamente lo que aria un pc.

Jumper =Cable

La patita corta de los LEDS es el negativo mientras que la larga es el positivo.

La resistencia se conectan a las lineas negativas.

Todos los Arduinos cuando arrancan mandan 3 pulsos de electricidad por el puerto 13.

En el IDE de arduino se crea el sistema operativo que va a arrancar el auduino.

Los GHZ son la cantidad de veces o ciclos que el procesador puede hacer instrucciones.

En arudino se crean 2 codigos, uno que arranca el sistema y otro que ocurre a medida que los siclos se van completando, normalmente eso no se programa pero en aruduino si se programa.

int amarillo = 13; Creación de una variable entera, se le asigna el pin de salida del arduino y un nombre.

Todo en la programación se maneja con mili segundos no con segundos int milisegundos = 500;.

En C o en Java las funciones no se crean con function, se crean declarando que va a retornar la función.
void setup()
{

}

void loop()
{

}
void setup es la función que se ejecuta cuando el computador o arduino arranca y loop es una función que se ejecuta todo el tiempo a medida que el ciclo del procesador ocurre, si el computador es capas de ejecutar un millón de veces el loop en un segundo así lo ejecutara, existen métodos para ralentizar esto.

void setup()
{
pinMode(amarillo, OUTPUT);
}
En la función pinMode se le pasan dos parámetros, el parámetro del puerto que se quiere encender y el parámetro de que si queremos recibir energía o que la envié, OUTPUT es la forma en la que internamente Arduino le dice a un pin que va a emitir electricidad, por defecto va a mandar 5v pero existen maneras para mandar menos voltaje a través de código y así poder mover cosas mas lento o mas rápido.

void loop()
{
digitalWrite(amarillo, HIGH);
delay(milisegundos);
digitalWrite(amarillo, LOW);
delay(milisegundos);
}
La forma para mandar electricidad en arduino es escribiendo digitalWrite y entre () se le pasan 2 parámetros, el parámetro del puerto y el parámetro de cuanto voltege le queremos enviar, para enviar toda la electricidad se le pone el parámetro HIGH, después se le pone una función llamada delay que significa esperara y se le pasa la variable mili segundos, para apagar en ves de pasar el parámetro HIGH se le pasa el parámetro LOW.

Digital es mandar 1 o 0 es decir toda la electricidad o nada.
Análogo es que se pueden mandar ondas, se pueden mandar 3v, 2v, 1.5v, etc.

Excelente explicación, y si ama de casa y esperando aprender mas y poder ingresar a un nuevo campo de trabajo.

Son las 23:51 y mañana tengo que levantarme temprano, pero no puedo parar de seguir estas clases, junto son las de git y github.

En mi universidad fallaron completamente al intentar explicarnos que era esa materia llamada El internet de las cosas, ahora comprendo.

Para los que no tiene un arduino fisico, pueden ir a esta pagina, pueden crear un usuario gratuitamente
https://www.tinkercad.com/

simulador de arduino: https://www.tinkercad.com (necesitan registrarse)

Una clase muy práctica y didáctica para explorar Arduino. Yo cree mi circuito en este simulador online https://www.tinkercad.com/dashboard
Si tienen dudas pueden escribirme 😃
Saludos!
Arduino.JPG

Mi proyecto en Arduino.
Arduino.png

Hola a [email protected] Como ya se ha posteado en los comentarios existe una sitio donde se puede programar, ensamblar y simular el funcionamiento de un arduino:
https://circuits.io/
Sin embargo para algunos puede resultar un poco complicada la primera aproximación a este software, por lo cual les dejo un enlace a un mini tutorial de como sacarle mejor partido desde el inicio.
https://blog.desdelinux.net/simulador-arduino-online-gratuito/

Espero les sea de utilidad.

¿ Cual es el lenguaje que recomendarían, para tratar problemas de inteligencia artificial, enfocado en al industria de los  video juegos?, lo digo, por que me parece un campo muy     interesante, un ejemplo de esto, Fueron las críticas al juego 

"DAIKATANA", por su pobre AI. 

like si crees que freddy debería de dar la mayoría de los cursos!!

Aquí hay que tener unas pautas claras una cosa es voltaje, corriente, y Potencia, ojo cuando usamos estos terminos sin saber porque para esto es recomendable leer y no ver un vídeo, Robert L. Boylestad para que conozcan la electrónica, y desean profundizar…

Yo antes de aprender c, aprendi assembler con el Pic 16f877a y pensaba que si era jodido assembler no me pensaba imaginar c, pense que era mas dificil, pero XD jajaja unas 40 lineas de codigo en assembler es de 4 a 5 lineas en C, si quieren un reto aprendan assembler y luego vean la diferencia con C, hay muchos recursos pero si quieres desarrollar una buena logica aprende assembler y luego ve emigrando… a otros buenos lenguajes por tanto es bueno ver estos cursos pero acompáñalo con lectura el porque coloco una resistencia ? de cuanto es esa resistencia ? que es una señal digital? que es una señal Analogica? delay es la única forma de temporizar en Arduino? son cosas que si no te pica la curiosidad y te quedas con los que te dicen, no estaras aprendiendo de la mejor forma posible Saludos

Cuando esas luces encendieron sentí una felicidad indescriptible jaja

arduino.png

![](IMG_20180801_090707.jpg
IMG_20180801_090709.jpg

int amarillo = 13;
int rojo = 7;
int milisegundos = 2000;
 
void setup() {
pinMode(amarillo, OUTPUT);  
pinMode(rojo, OUTPUT);  
}

void loop() {
digitalWrite(amarillo,HIGH);
digitalWrite(rojo,LOW);
delay(milisegundos);
digitalWrite(amarillo,LOW);
digitalWrite(rojo,HIGH);
delay(milisegundos);
}

aiuda please, solo prende el LED rojo , en vez de que titile el LED amariilo titila mi arduino en el punto L :V-.
como lo haria señores de platzi?

LLoré a ver como encendio mi LED .

Para los que quieren un simulador practico de usar y que incluso les permita hacer sus propios circuitos impresos a futuro les recomiendo fritzing (http://fritzing.org/download/)
Para los que dispongan de dinero y quieran iniciarse de lleno con arduino uno les recomiendo el kit starter de adeept(https://www.adeept.com/ult-arduino-uno_p0085.html)

Para hacer parpadear 1 Led:

1led.PNG
void setup()
{
  pinMode(13, OUTPUT);
}

void loop()
{
  digitalWrite(13, HIGH);
  delay(1000);
  digitalWrite(13, LOW);
  delay(1000);
}

¡Feliz aprendizaje!
Atentamente: Rapimi95. 😄

Mi ambicioso proyecto de encender 2 Leds:

2leds.PNG
void setup()
{
  pinMode(13, OUTPUT);
  pinMode(12, OUTPUT);
}

void loop()
{
  digitalWrite(13, HIGH);
  digitalWrite(12, LOW);
  delay(1000);
  digitalWrite(13, LOW);
  digitalWrite(12, HIGH);
  delay(1000);
}

¡Feliz aprendizaje!
Atentamente: Rapimi95. 😄

Puse leds concetados con todos los puertos xd, intente crear las variables asi como prenderlas y apagarlas con ciclos for pero me daba error asi que aqui esta todo manualmente 😃

int led0 = 0;
int led1 = 1;
int led2 = 2;
int led3 = 3;
int led4 = 4;
int led5 = 5;
int led6 = 6;
int led7 = 7;
int led8 = 8;
int led9 = 9;
int led10 = 10;
int led11 = 11;
int led12 = 12;
int led13 = 13;

int milisegundos = 300;

void setup()
{
  pinMode(led0, OUTPUT);
  pinMode(led1, OUTPUT);
  pinMode(led2, OUTPUT);
  pinMode(led3, OUTPUT);
  pinMode(led4, OUTPUT);
  pinMode(led5, OUTPUT);
  pinMode(led6, OUTPUT);
  pinMode(led7, OUTPUT);
  pinMode(led8, OUTPUT);
  pinMode(led9, OUTPUT);
  pinMode(led10, OUTPUT);
  pinMode(led11, OUTPUT);
  pinMode(led12, OUTPUT);
  pinMode(led13, OUTPUT);
}

void loop()
{
  digitalWrite(led0, HIGH);
  digitalWrite(led1, LOW);
  digitalWrite(led2, HIGH);
  digitalWrite(led3, LOW);
  digitalWrite(led4, HIGH);
  digitalWrite(led5, LOW);
  digitalWrite(led6, HIGH);
  digitalWrite(led7, LOW);
  digitalWrite(led8, HIGH);
  digitalWrite(led9, LOW);
  digitalWrite(led10, HIGH);
  digitalWrite(led11, LOW);
  digitalWrite(led12, HIGH);
  digitalWrite(led13, LOW);
  
  delay(milisegundos);
  
  digitalWrite(led0, LOW);
  digitalWrite(led1, HIGH);
  digitalWrite(led2, LOW);
  digitalWrite(led3, HIGH);
  digitalWrite(led4, LOW);
  digitalWrite(led5, HIGH);
  digitalWrite(led6, LOW);
  digitalWrite(led7, HIGH);
  digitalWrite(led8, LOW);
  digitalWrite(led9, HIGH);
  digitalWrite(led10, LOW);
  digitalWrite(led11, HIGH);
  digitalWrite(led12, LOW);
  digitalWrite(led13, HIGH);
  
  delay(milisegundos*2);
}

En ese circuito realmente el cable de 5V no estaba entrando en funcionamiento, porque la conexión positiva se daba a través del pin 13. Para que no se confundan, por si tenían la duda.

IMG_20190811_175438.jpg
tengo 14 años y conoci arduino a los 10 gracias ami profesor que sea enforzado en ensañarle a mas personas estos tipos de proyectos
y platzi me a enseñado a seguir espero que mas personas aprendan esto
saludos desde colombia

He creado la comunicación entre dos arduinos, envío y recepción de datos a través del puerto I2C, les dejó el procedimiento:

Para el arduino receptor.

#include <Wire.h>
#include <LiquidCrystal.h>
int dec_sw1, dec_sw2 = 0;
int mensaje = 0;

const int rs = 12, en = 11, d4 = 5, d5 = 4, d6 = 3, d7 = 2;
LiquidCrystal lcd(rs, en, d4, d5, d6, d7);

void setup() {
  // put your setup code here, to run once:

lcd.begin(16, 2);
Wire.begin(1);
Wire.onReceive(receiveData);
Serial.begin(9600);

}

void loop() {
  // put your main code here, to run repeatedly:
delay(100);
}

void receiveData(int howMany){
  while(1 < Wire.available()){
    int sw1 = Wire.read();
    Serial.println(sw1);
    int sw2 = Wire.read();
    Serial.println (sw2);

    int dec_sw1 = 0;
    int dec_sw2 = 0;
    
     if (sw1 == 1){
      dec_sw1 = pow(2,0);
     }
     if (sw2 ==1){
      dec_sw2 = pow(2,1);
     }

     mensaje = dec_sw1 + dec_sw2;
     Serial.print("Num de Mensaje: "); Serial.println(mensaje);

     switch (mensaje) {
    case 0:                 //escribe en el display el numero 1
      lcd.clear();
      lcd.setCursor(0, 0);
      lcd.print("Orden N 1");
      lcd.setCursor(0, 1);
      lcd.print("Perro Caliente");
     break;
     case 1:
      lcd.clear();
      lcd.setCursor(0, 0);
      lcd.print("Orden N 12");
      lcd.setCursor(0, 1);
      lcd.print("Hamburguesa senc");
      break;
      case 2:
      lcd.clear();
      lcd.setCursor(0, 0);
      lcd.print("Orden N 22");
      lcd.setCursor(0, 1);
      lcd.print("Pizza Mexicana");
      break;
      case 3:
      lcd.clear();
      lcd.setCursor(0, 0);
      lcd.print("Orden N 100");
      lcd.setCursor(0, 1);
      lcd.print("Arepa Rellena");
      break;
      default: 
      lcd.clear();
      lcd.setCursor(0, 0);
      lcd.print("Bienvenidos");
      lcd.setCursor(0, 1);
      lcd.print("Restaurante Fit");
     }
  }
}

Para el arduino que envía:

#include <Wire.h>

bool sw1 = 0;
bool sw2 = 0;

void setup() {
  // put your setup code here, to run once:
Wire.begin();
Serial.begin(9600);
pinMode(11, INPUT);
pinMode(10, INPUT);

}

void loop() {
  // put your main code here, to run repeatedly:

sw1 = digitalRead(11);
sw2 = digitalRead(10);

Serial.println(sw1);
Serial.println(sw2);

Wire.beginTransmission(1);
Wire.write(sw1);
Wire.write(sw2);
Wire.endTransmission();

delay(500);

}

Y el diagrama es este:

Sketch I2C - LCD_bb.png

like el que utiliza tinkercad como simulador de arduino

Hola. Para las personas que no tengan un arduino, puede usar la herramienta en línea Tinkercad es de Autodesk. Tiene una plataforma interactiva donde podemos simular nuestro arduino y colocar los componentes que deseemos.

Simulador Online para Arduino

La electrónica es mágica

Arduino.png

Interesante vídeo, bastante fácil.![](Screenshot_1.png

Editing Components.png

led Amarillo
led Azul
led Blanco (7 estrellas)
led Rojo
la Bandera de mi país 😉 Venezuela

int amarillo = 13;
int azul = 12;
int blanco = 11;
int blanco1 = 10;
int blanco2 = 9;
int blanco3 = 8;
int blanco0 = 7;
int blanco_5 = 6;
int blanco6 = 5;
int rojo = 4;
int milisegundos = 400;

void setup()
{
pinMode(amarillo, OUTPUT);
pinMode(azul, OUTPUT);
pinMode(blanco, OUTPUT);
pinMode(blanco1, OUTPUT);
pinMode(blanco2, OUTPUT);
pinMode(blanco3, OUTPUT);
pinMode(blanco0, OUTPUT);
pinMode(blanco_5, OUTPUT);
pinMode(blanco6, OUTPUT);
pinMode(rojo, OUTPUT);
}

void loop()
{
digitalWrite(amarillo, HIGH);
digitalWrite(azul, HIGH);
digitalWrite(blanco, LOW);
digitalWrite(blanco1, HIGH);
digitalWrite(blanco2, LOW);
digitalWrite(blanco3, HIGH);
digitalWrite(blanco0, HIGH);
digitalWrite(blanco_5, HIGH);
digitalWrite(blanco6, HIGH);
digitalWrite(rojo, LOW);
delay(milisegundos);
digitalWrite(amarillo, LOW);
delay(milisegundos *1);
digitalWrite(azul, LOW);
delay(milisegundos *2);
digitalWrite(blanco, HIGH);
delay(milisegundos);
digitalWrite(blanco1, LOW);
delay(milisegundos);
digitalWrite(blanco2, HIGH);
delay(milisegundos);
digitalWrite(blanco3, LOW);
delay(milisegundos);
digitalWrite(blanco0, HIGH);
delay(milisegundos);
digitalWrite(blanco_5, LOW);
delay(milisegundos);
digitalWrite(blanco6, HIGH);
delay(milisegundos);
digitalWrite(rojo, HIGH);
delay(milisegundos);

}

Entonces asi se hacen las luces navideñas de mi arbolito jajaja

Que buena clase

Excelente Clase Freddy muchas gracias por compartir con nosotros.

Lo logré: Construí un semáforo.

SEMAFORO PATRILOAIZA.png
Screenshot_1.png

Y el semaforito? xD
Screenshot_2020-04-26 Autodesk Circuits.png

arduino.PNG

En tinkercad tienen todo lo necesario para trabajar con Arduino y la protoboard.
https://www.tinkercad.com/

interesante!!

arduino.JPG

Que tema tan poderoso! Ya me imagino un dron haciendo el mandao´ a la tienda en la era covid19

en mi opinion para tener un conocimiento mas amplio sobre los arduinos hay un video en youtobe donde lo explican, se llama,
Qué es Arduino y cómo crear un proyecto real
o el link:
https://www.youtube.com/watch?v=YDbLhaakNAw

www.tinkercad.com es lo mejor !

ARDUINO1.png
Captura de pantalla de 2020-04-11 01-16-53.png

fredy es un personaje

jajajaja "El codigo es ambicioso, HAGAMOS TITILAR DOS LEDS!" >:)  

🐱‍💻 Siguiendo el proceso del proyecto.
arduino.png

int amarillo = 13;
int rojo = 7;
int milisegundos = 300;

void setup() {
  pinMode(amarillo, OUTPUT);
  pinMode(rojo, OUTPUT);
}

void loop() {
  digitalWrite(amarillo, HIGH);
  digitalWrite(rojo, LOW);
  delay(milisegundos);
  digitalWrite(amarillo, LOW);
  digitalWrite(rojo, HIGH);
  delay(milisegundos * 2);
}

vamos a hacer algo ambicioso
![](momentos grasiosos 6.PNG)
hacer titillar DOS LEDS !
![](momentos grasiosos7.PNG

o acaso tenias algo mas ambicioso
![](momentos grasiosos8.PNG
freddy grasias por enseñaros con tanta diversion

  • Lenguajes de Bajo Nivel : Lenguajes cuyas interpretaciones están mas cerca al lenguaje maquina permitiendo tener una mayor interacción y velocidad con el hardware ej: C , C++.
  • Lenguajes de Alto Nivel : Lenguajes con instrucciones mas fáciles de escribir y leer para una persona que requieren interpretes para convertirse en lenguaje maquina ej: Ruby , Python , JavaScript.
  • Entre mas alto sea el nivel del lenguaje de programación mas bajo es su curva de aprendizaje.
  • Lenguaje Maquina : Codigo binario o hexadecimal directamente interpretados por el microprocesador de el computador difíciles de leer para una persona.
  • Lenguaje Ensamblador o Assembler: Expresa las instrucciones que queremos darle al microprocesador de una forma mas natural para la persona y a la vez mas cercana a la maquina. Es un lenguaje de bajo nivel
  • Unity 3D: Funciona con JS o C#, puedes crear con el juegos como pokemon Go o juegos de VR. Para mira los videos de platzi.
  • Java: Se parece a JS pero es de menos nivel.
  • IOT (Internet Of Things/Internet De Las Cosas): Es basicamente conectar a internet objeto del mundo real, como cepillos de dientes, zapatos, etc…
  • Arduinos y Rasperry Pi: Son basicamente ordenadores muy pequeños que podemos programar desde 0. En arduino se programa con C
  • C: Es un lenguaje de bajo nivel lo puedes ver en el curso de algoritmos. De este lenguaje se derivan Java, Javascript, C#, unity 3D, etc…
  • JavaScript crecio tanto que ahora esta incluso en el lado del servidor y en hardware. Gracias a node js podemos agarrar js y llevarlos a aplicaciones embeebidas (Arduinos, etc…) o al servidor.
  • Podemos programar una aplicacion web completa con node.js. Gracias a node podemos programar js para el navegador y para el servidor. Una de las cosas magicas de node es que podemos incluso conectarnos a hardware externo.
  • Autodesk circuits y tinkercad son 2 de los mejores simuladores de Arduino:
    https://circuits.io/
    https://www.tinkercad.com/
  • System on a Chip (SoC): Es un circuito integrado que incorpora muchos componentes de la computadora en un solo chip: la CPU, la memoria, la memoria RAM, etc… Aqui es donde le vamos a subir un S.O.
  • Los voltios es como la cantidad de agua, por ejemplo con 5V nosotros no podemos encender un coche pero si un led, de hecho es demasiado para un led.
    Cuando la electricidad es demasiado fuerte el led puede calentarse y quemarse
  • Resistencia: Lo que hacen es bajar la potencia de la electricidad para que no se caliente
  • breadboard (protoboard): Es un dispositivo para prototipado temporal sin soldadura con componentes electrónicos y probar diseño de circuitos. Son formas en las que los cables estan organizados por dentro.
  • Puertos analogos: Permiten recibir electricidad desde el circuito
  • El led es un diodo y esta formado por Anodo y Catodo:
    Ánodo: Parte positiva (+)
    Se identifica con la pata más larga
    Cátodo: Parte negativa (-)
    Se identifica con la pata más corta
  • pinMode: Es una funcion interna de arduino que recibe 2 parametros (puerto a prender, recibir o enviar electricidad)
  • OUTPUT: Envia electricidad
  • INPUT: Recibe electricidad
  • digitalWrite: Es la forma de enviar electricidad en Arduino y le pasamos 2 parametros (puerto a prender, voltage a mandar)
  • Digital y Analogo: Digital es que ustedes mandan 1 o 0, es decir toda la electricidad o nada. Y analogo es que ustedes mandan ondas pueden mandar 3V, 3.5V, 0.5V, 5, 0, etc… es decir una onda.
  • HIGHT: Significa que le mandamos toda la electricidad (5V, en este caso porque estamos usando la salida de 5V), es decir encendido.
  • LOW: En el digital cuando UNO LE PASA UNA BAJA INTENSIDAD, EN REALIDAD LE ESTA MANDANDO 0V. ES CONFUSO PERO ASI ES LA PROGRAMACION. Entonces LOW significa que le mandamos nada (0V), es decir que no le mandamos electricidad, esta apagado.
  • delay: significa espera y por parametro la cantidad que yo quiero que espere. Que ya creamos arriba como la variable milisegundos con un valor de 500. ENTONCES CON ESTA LINEA EL CODIGO VA A ESPERAR 500 MILISEGUNDOS ANTES DE EJECUTAR LA SIGUIENTE FUNCION

“En ingles se llaman “jumpers” pero en realidad es un pinche cable” xD

When compras el arduino but no te alcanza para la protoboard…jajajajaja

421285264246302957.jpg

FUE CONSTRUIDO CON DOS MOTORES, UN SENSOR DE LUZ Y UN SENSOR DE APROXIMACIÓN.
EL CARRITO SE MUEVE CONFORME EXISTA LUZ, SI LLEGA A TOPAR CON PARED CON DISTANCIA DE 15 cm, DA VUELTA A LA DERECHA. SI SE OBSCURECE O NO ENCUENTRA LUZ, EL CARRO SE DETIENE.
SIMPLE PERO DIVERDITO.
arduino.jpg

ahora ya puedo hacer las luces de navidad XD

interesante soy antropologa y me intereso esto desde que un amigo programador me dijo que yo no entenderia lo que es programacion, excelente curso y gracias a freddy entendi mucho mas…

Platzi --> https://circuits.io/circuits/2789256-the-unnamed-circuit#breadboard 

Buena clase, pero un detalle --> En Gameboy no se llamaba Pokémon Go, era Pokemon Azul/Rojo y había 151 pokémons no 250.

Gracias Freddy: Mi simulador

Así quedo, aunque aumente algo mas que el LED:
G.jpg

Excelente explicación.
![](arduino.JPG

Pueden conseguir el simulador del siguiente link: https://www.tinkercad.com

Para el que quiera usar un simulador, acá tiene uno muy completo, encima gratuito: https://www.tinkercad.com/
ardui.png

El proyecto mas grande que hice con un arduino, fue una maquina inyectora de silicon para concreto hidraulico, hay una pequeña empresa que ya utiliza mi prototipo en Texas.

Soy gimnasta y músico, jamás me imaginé estar aprendiendo todo esto y me encanta! Gracias! Mi primer arduino!!! Que emoción!ARDUINO.jpg

En algunos casos(sobre todo en los últimos días) puede resultar complicado conectarse a la plataforma de https://circuits.io/, pues parece que su servidor está sufriendo algo de sobrecarga. Es común que tire un error 502. Por lo tanto he buscado alguna alternativa(aunque no sea tan elegante) para probar el código nativamente y sin un Arduino.
Encontré un software muy liviano (aunque solo funciona en SO Windows ) que realmente me ha dado buenos resultados. Atención: está más enfocado hacia la parte de programación que a la electrónica propiamente dicha, sin embargo es un excelente recurso para testear código.
Es un software libre llamado UnoArduSim, desarrollado por el Profesor Stan Simmons de la Universidad de Queen, al encontrarse con que varios de sus alumnos tenían el mismo problema que yo para acceder a los simuladores online.
Pueden descargarlo aquí (es software libre):
https://www.sites.google.com/site/unoardusim/services/UnoArduSimV1.7.2.zip?attredirects=0&d=1

Y como agregado les dejo un tutorial para comenzar a utilizarlo. Es muy minimalista y simple así que de seguro se les va a hacer sencilla la tarea al menos en sus aspectos básicos.
Tutorial:
https://tallerelectronica.com/2015/04/11/unoardusim-software-de-simulacion-de-arduino-uno/

Siguiendo la clase de @freddier
IMG_20171030_111427.jpg

Para quienes lo vean el 2018 en navidad, felices fiestas!!! 😃

20181225_082634.jpg
platzi.png
int amarillo = 13;//nombra el puerto 13 como amarillo
int rojo = 7;	//nombra el puerto 7 como rojo
int milisegundos = 300; // establece una constante de tiempo
  
  void setup ()//metodo de inicio del sistema
{
  pinMode(amarillo,OUTPUT);
  pinMode(rojo,OUTPUT);//DECLARA QUE EL PIN 7 Y 13
  						//DEL ARDUINO SON SALIDAS
}

void loop ()
{
  digitalWrite(amarillo,HIGH);//el puerto 13 está encendido
  digitalWrite(rojo,LOW);    //el puerto 7 está apagado
  delay (milisegundos);		// pausa el ciclo por 300ms
  digitalWrite(amarillo,LOW);//despues de la Pausa el puerto 13 se apaga
  digitalWrite(rojo,HIGH);  // despues de la pausa el puerto 7 se enciende
  delay (milisegundos);		// pausa el ciclo por 300ms e inicia nuevamente
}```

Muy interesante, desde https://www.tinkercad.com se puede realizar con componentes visuales.
aqui una prueba de un “semaforo”

En mi trabajo, me tocó programar un farmbot, justo lo que dice Freddy en el min 8:50 sobre un robot que riega las plantas, la diferencia es que este ya se comercializa en US y Europa para granjeros, usa un Raspberry Pi y se programa súper simple, denle un vistazo, está genial: farm.bot

https://www.tinkercad.com/ el mejor simulador.

Ya me veo programando y creando mis propios focos para navidad 😃

Captura de pantalla (156).png

Les comparto un breve vídeo de mi proyecto funcionando:
https://www.loom.com/share/4a1a48ba94bd471d9741d22ceaadb33a

para los que no encuentran el simulador,
Descarguenlo de aquí www.tinkercad.com
creen su cuenta, y entren a la sección aprendizaje y cambien de 3D a circuit
y ahi van a ver

Este tipo de aplicaciones usando programación y electrónica cliente/servidor es lo que andaba buscando :)

aqui les tengo un buen simulator de arduinos.
https://www.tinkercad.com/

¿Usar Linux?
Si tu respuesta es sí, y no has podido instalar y hacer funcionar Sketch (IDE Artudino), sigue los siguientes paso:

  1. Si ya lo instalaste mediante el gestor de paquetes, desinstálalo.
    En Ubuntu y similares:
$ sudo apt remove arduino
  1. Ingresa a https://www.arduino.cc/en/Main/Software y descarga la versión para tu sistema operativo, en mi caso usé Linux 64 bit.

  2. Descomprime el archivo .tar.xz (clic derecho -> Extraer aquí)

  3. Abre una terminal en la carpeta donde lo descargaste, por ejemplo en ~/Descargas $

  4. Lo siguientes comandos:

$ sudo mv arduino-* /opt
$ cd /opt/arduino-*
$ sudo chmod +x install.sh
$ sudo ./install.sh
$ sudo ./arduino-linux-setup.sh $USER
$ sudo usermod -a -G dialout $USER
$ sudo chmod a+rw /dev/ttyACM0
  1. Para ejecutar el IDE Arduino, busca “arduino” entre las aplicaciones o escribe en la terminal
$ arduino
  1. Si por algo no se ejecuta, ingresa esta última linea
$ sudo ln -s /opt/arduino-*/arduino /usr/local/bin/arduino

Si estas [email protected] en el significado de alguna linea puedes preguntar y con gusto te contestaré.

miArduino500milisegundos.png me queda claro ya con la practica, aunque sea en simulación , espero pronto comprar la placa.

**Si estan tomando el curso en el año 2018 o posterior y buscan un simulador para arduino usen el circuit simulator de ** TinkerCAD ya que ** circuit.io ** de AUTODESK emigro a el

![](Wiring Components.png

Arduino 1d.png

El codigo es ambicioso!! Hagamos titilar dos leds,
xD

A mi me dio risa cuando dijo "El código es ambicioso!!!"
Yo: Nos va a poner a codificar un código de la nasa!!!

El profe: Hagamos 2!!! LEDS!!! 😃

tiene mucho sentido del humor eso es bueno, me gusta.

Saludos, Un simulador para arduino que les podría ayudar es TinkerCad no deben descargar nada. Espero les ayude

ARDUINO3.PNG

Pinche cable jajaja

Quien en el 2019 tomando este curso

Fue tan hermoso desempolvar lo que utilice en la carrera de Electronica, encontrar mi arduino, mis protoboards quemadas, mis leds,cables, resistencias, etc =’)

8:15 Esa colaboradora se volvió la esposa de Freddy 😱❤️

Yo hice la practica en: www.tinkercad.com

arduino_01.png

Excelente combinación entre Electrónica y programación, gracias Fredy por su gran conocimiento, le deseo muchos éxitos en PLATZI, se que aquí esta el futuro.

Setup es la función que se ejecuta cuando el computador que estamos programando arranca. Loop es una función que se ejecuta todo el tiempo a medida que el ciclo del procesador ocurre.

Mi versión del semáforo:

int amarillo = 13;
int rojo = 7;
int verde = 2;
int milisegundos = 1000;

void setup()
{
	pinMode(amarillo, OUTPUT);
	pinMode(rojo, OUTPUT);
  	pinMode(verde, OUTPUT);
}

void loop()
{
	digitalWrite(amarillo, LOW);
	digitalWrite(rojo, LOW);
  	digitalWrite(verde, HIGH);
	delay(milisegundos*3);
  	digitalWrite(verde, LOW);
	digitalWrite(amarillo, HIGH);
	digitalWrite(rojo, LOW);
	delay(milisegundos);
  	digitalWrite(verde, LOW);
	digitalWrite(amarillo, LOW);
	digitalWrite(rojo, HIGH);
	delay(milisegundos*3);
  	digitalWrite(verde, LOW);
	digitalWrite(amarillo, HIGH);
	digitalWrite(rojo, HIGH);
	delay(milisegundos);
}```

Graaaaacias Freddy por compartir conocimiento 😃

Al final la realidad virtual no era tanto como pensábamos

Se pueden realizar las pruebas con el Arduino Simulator de Tinkercad. Es Genial!

2020-04-24 16_05_42-Window.png

Me encantó 😄

Screenshot_3.png
/* >> La protoboard es una placa de pruebas para electrónica 
que contiene numerosos orificios en los que es posible 
insertar cables y otros elementos electrónicos para montar
circuitos provisionales. La ventaja de este dispositivo es
que no requiere soldar sus componentes para tener un 
circuito operativo.

>> LED :  Light Emitting Diode ó Diodo Emisor de Luz.

>> Es un material semiconductor que es capaz de emitir una 
radiación electromagnética en forma de Luz.

Patita corta = Patita negativa
Patita Larga = Patita positiva 

>> int = Variable con numero entero
>> Pin 13 led amarillo */
int amarillo = 13;
int azul = 7; // Segundo LED
int rojo = 0; // Tercer LED

// Tiempo de parpadeo del Led
int milisegundos = 120;

/*  En lenguaje C, una funcion se inicia con void.

>> Setup (), es la funcion que se ejecuta cuando 
lo que programamos inicia. */
void setup()
{
  /* Esta funcion tiene dos parametros: El puerto que 
  usará, y la funcion. En este caso, Puerto: 13 (Amarillo), 
  Función: Emitir electricidad.  */
  pinMode(amarillo, OUTPUT);
  pinMode(azul, OUTPUT);
  pinMode(rojo, OUTPUT);
}

// Loop es una funcion que se ejecuta todo el tiempo.
void loop()
{
  /* digitalWrite es la forma en la que se emite 
  electricidad en Arduino. Tiene 2 parametros el puerto 
  que se usará y la cantidad de voltaje. En este caso, 
  Puerto: 13 (Amarillo), Voltake: Alto (High)
  HIGH = 5v | LOW = 0v*/
  
  digitalWrite(amarillo, HIGH);
  digitalWrite(azul, LOW);
  delay(milisegundos); // Wait for 1000 millisecond(s)
  
  
  digitalWrite(azul, HIGH);
  digitalWrite(rojo, LOW);
  delay(milisegundos * 2); // Wait for 1000 millisecond(s)
  
  
  digitalWrite(rojo, HIGH);
  digitalWrite(amarillo, LOW);
  delay(milisegundos * 3); // Wait for 1000 millisecond(s)
}

/* >> Los pines de Arduino funcionan por defecto como 
entradas, de forma que no necesitan declararse 
explícitamente como entradas empleando pinMode().

>> Señal Electrica Analógica: Es aquella en la que los 
valores de la tensión o voltaje varían constantemente y 
pueden tomar cualquier valor.

>> Señal Electrica Digital: Es una función usada en la 
function setup() para configurar un pin dado para 
comportarse como INPUT o OUTPUT.  */

comment.png

https://www.tinkercad.com/
en esa pagina esta el simulador del arduino
solo se registran y hacen click en circuits y crean uno

ESTA VIVOOOOOOOOOOOOOOOOOOO
Captura.PNG

Intenet of things IoT: Es conectar a Internet objetos del mundo real, todo esto arranca por el Arduino, estos son maquinas electrónicas pequeñas que son básicamente una PC pequeña que se puede programar desde cero, el arduino se programa con un lenguaje de programación llamado C, de este lenguaje se deriva Java, C++, JavaScript, etc., se puede hacer una aplicación completa con node.js, se puede programar JS para el navegador y para el servidor gracias a node.js y gracias a esto se puede conectar a hardware externo como a un dron.

La placa de auduino tiene un procesador, una memoria ram y un disco, y dentro de ella guarda internamente lo que aria un pc.

Jumper =Cable

La patita corta de los LEDS es el negativo mientras que la larga es el positivo.

La resistencia se conectan a las lineas negativas.

Todos los Arduinos cuando arrancan mandan 3 pulsos de electricidad por el puerto 13.

En el IDE de arduino se crea el sistema operativo que va a arrancar el auduino.

Los GHZ son la cantidad de veces o ciclos que el procesador puede hacer instrucciones.

En arudino se crean 2 codigos, uno que arranca el sistema y otro que ocurre a medida que los siclos se van completando, normalmente eso no se programa pero en aruduino si se programa.

int amarillo = 13; Creación de una variable entera, se le asigna el pin de salida del arduino y un nombre.

Todo en la programación se maneja con mili segundos no con segundos int milisegundos = 500;.

En C o en Java las funciones no se crean con function, se crean declarando que va a retornar la función.
void setup()
{

}

void loop()
{

}
void setup es la función que se ejecuta cuando el computador o arduino arranca y loop es una función que se ejecuta todo el tiempo a medida que el ciclo del procesador ocurre, si el computador es capas de ejecutar un millón de veces el loop en un segundo así lo ejecutara, existen métodos para ralentizar esto.

void setup()
{
pinMode(amarillo, OUTPUT);
}
En la función pinMode se le pasan dos parámetros, el parámetro del puerto que se quiere encender y el parámetro de que si queremos recibir energía o que la envié, OUTPUT es la forma en la que internamente Arduino le dice a un pin que va a emitir electricidad, por defecto va a mandar 5v pero existen maneras para mandar menos voltaje a través de código y así poder mover cosas mas lento o mas rápido.

void loop()
{
digitalWrite(amarillo, HIGH);
delay(milisegundos);
digitalWrite(amarillo, LOW);
delay(milisegundos);
}
La forma para mandar electricidad en arduino es escribiendo digitalWrite y entre () se le pasan 2 parámetros, el parámetro del puerto y el parámetro de cuanto voltege le queremos enviar, para enviar toda la electricidad se le pone el parámetro HIGH, después se le pone una función llamada delay que significa esperara y se le pasa la variable mili segundos, para apagar en ves de pasar el parámetro HIGH se le pasa el parámetro LOW.

Digital es mandar 1 o 0 es decir toda la electricidad o nada.
Análogo es que se pueden mandar ondas, se pueden mandar 3v, 2v, 1.5v, etc.

Excelente explicación, y si ama de casa y esperando aprender mas y poder ingresar a un nuevo campo de trabajo.

Son las 23:51 y mañana tengo que levantarme temprano, pero no puedo parar de seguir estas clases, junto son las de git y github.

En mi universidad fallaron completamente al intentar explicarnos que era esa materia llamada El internet de las cosas, ahora comprendo.

Para los que no tiene un arduino fisico, pueden ir a esta pagina, pueden crear un usuario gratuitamente
https://www.tinkercad.com/

simulador de arduino: https://www.tinkercad.com (necesitan registrarse)

Una clase muy práctica y didáctica para explorar Arduino. Yo cree mi circuito en este simulador online https://www.tinkercad.com/dashboard
Si tienen dudas pueden escribirme 😃
Saludos!
Arduino.JPG

Mi proyecto en Arduino.
Arduino.png

Hola a [email protected] Como ya se ha posteado en los comentarios existe una sitio donde se puede programar, ensamblar y simular el funcionamiento de un arduino:
https://circuits.io/
Sin embargo para algunos puede resultar un poco complicada la primera aproximación a este software, por lo cual les dejo un enlace a un mini tutorial de como sacarle mejor partido desde el inicio.
https://blog.desdelinux.net/simulador-arduino-online-gratuito/

Espero les sea de utilidad.

¿ Cual es el lenguaje que recomendarían, para tratar problemas de inteligencia artificial, enfocado en al industria de los  video juegos?, lo digo, por que me parece un campo muy     interesante, un ejemplo de esto, Fueron las críticas al juego 

"DAIKATANA", por su pobre AI. 

like si crees que freddy debería de dar la mayoría de los cursos!!

Aquí hay que tener unas pautas claras una cosa es voltaje, corriente, y Potencia, ojo cuando usamos estos terminos sin saber porque para esto es recomendable leer y no ver un vídeo, Robert L. Boylestad para que conozcan la electrónica, y desean profundizar…

Yo antes de aprender c, aprendi assembler con el Pic 16f877a y pensaba que si era jodido assembler no me pensaba imaginar c, pense que era mas dificil, pero XD jajaja unas 40 lineas de codigo en assembler es de 4 a 5 lineas en C, si quieren un reto aprendan assembler y luego vean la diferencia con C, hay muchos recursos pero si quieres desarrollar una buena logica aprende assembler y luego ve emigrando… a otros buenos lenguajes por tanto es bueno ver estos cursos pero acompáñalo con lectura el porque coloco una resistencia ? de cuanto es esa resistencia ? que es una señal digital? que es una señal Analogica? delay es la única forma de temporizar en Arduino? son cosas que si no te pica la curiosidad y te quedas con los que te dicen, no estaras aprendiendo de la mejor forma posible Saludos

Cuando esas luces encendieron sentí una felicidad indescriptible jaja

arduino.png

![](IMG_20180801_090707.jpg
IMG_20180801_090709.jpg

int amarillo = 13;
int rojo = 7;
int milisegundos = 2000;
 
void setup() {
pinMode(amarillo, OUTPUT);  
pinMode(rojo, OUTPUT);  
}

void loop() {
digitalWrite(amarillo,HIGH);
digitalWrite(rojo,LOW);
delay(milisegundos);
digitalWrite(amarillo,LOW);
digitalWrite(rojo,HIGH);
delay(milisegundos);
}

aiuda please, solo prende el LED rojo , en vez de que titile el LED amariilo titila mi arduino en el punto L :V-.
como lo haria señores de platzi?

LLoré a ver como encendio mi LED .

Para los que quieren un simulador practico de usar y que incluso les permita hacer sus propios circuitos impresos a futuro les recomiendo fritzing (http://fritzing.org/download/)
Para los que dispongan de dinero y quieran iniciarse de lleno con arduino uno les recomiendo el kit starter de adeept(https://www.adeept.com/ult-arduino-uno_p0085.html)

Para hacer parpadear 1 Led:

1led.PNG
void setup()
{
  pinMode(13, OUTPUT);
}

void loop()
{
  digitalWrite(13, HIGH);
  delay(1000);
  digitalWrite(13, LOW);
  delay(1000);
}

¡Feliz aprendizaje!
Atentamente: Rapimi95. 😄

Mi ambicioso proyecto de encender 2 Leds:

2leds.PNG
void setup()
{
  pinMode(13, OUTPUT);
  pinMode(12, OUTPUT);
}

void loop()
{
  digitalWrite(13, HIGH);
  digitalWrite(12, LOW);
  delay(1000);
  digitalWrite(13, LOW);
  digitalWrite(12, HIGH);
  delay(1000);
}

¡Feliz aprendizaje!
Atentamente: Rapimi95. 😄

Puse leds concetados con todos los puertos xd, intente crear las variables asi como prenderlas y apagarlas con ciclos for pero me daba error asi que aqui esta todo manualmente 😃

int led0 = 0;
int led1 = 1;
int led2 = 2;
int led3 = 3;
int led4 = 4;
int led5 = 5;
int led6 = 6;
int led7 = 7;
int led8 = 8;
int led9 = 9;
int led10 = 10;
int led11 = 11;
int led12 = 12;
int led13 = 13;

int milisegundos = 300;

void setup()
{
  pinMode(led0, OUTPUT);
  pinMode(led1, OUTPUT);
  pinMode(led2, OUTPUT);
  pinMode(led3, OUTPUT);
  pinMode(led4, OUTPUT);
  pinMode(led5, OUTPUT);
  pinMode(led6, OUTPUT);
  pinMode(led7, OUTPUT);
  pinMode(led8, OUTPUT);
  pinMode(led9, OUTPUT);
  pinMode(led10, OUTPUT);
  pinMode(led11, OUTPUT);
  pinMode(led12, OUTPUT);
  pinMode(led13, OUTPUT);
}

void loop()
{
  digitalWrite(led0, HIGH);
  digitalWrite(led1, LOW);
  digitalWrite(led2, HIGH);
  digitalWrite(led3, LOW);
  digitalWrite(led4, HIGH);
  digitalWrite(led5, LOW);
  digitalWrite(led6, HIGH);
  digitalWrite(led7, LOW);
  digitalWrite(led8, HIGH);
  digitalWrite(led9, LOW);
  digitalWrite(led10, HIGH);
  digitalWrite(led11, LOW);
  digitalWrite(led12, HIGH);
  digitalWrite(led13, LOW);
  
  delay(milisegundos);
  
  digitalWrite(led0, LOW);
  digitalWrite(led1, HIGH);
  digitalWrite(led2, LOW);
  digitalWrite(led3, HIGH);
  digitalWrite(led4, LOW);
  digitalWrite(led5, HIGH);
  digitalWrite(led6, LOW);
  digitalWrite(led7, HIGH);
  digitalWrite(led8, LOW);
  digitalWrite(led9, HIGH);
  digitalWrite(led10, LOW);
  digitalWrite(led11, HIGH);
  digitalWrite(led12, LOW);
  digitalWrite(led13, HIGH);
  
  delay(milisegundos*2);
}

En ese circuito realmente el cable de 5V no estaba entrando en funcionamiento, porque la conexión positiva se daba a través del pin 13. Para que no se confundan, por si tenían la duda.

IMG_20190811_175438.jpg
tengo 14 años y conoci arduino a los 10 gracias ami profesor que sea enforzado en ensañarle a mas personas estos tipos de proyectos
y platzi me a enseñado a seguir espero que mas personas aprendan esto
saludos desde colombia

He creado la comunicación entre dos arduinos, envío y recepción de datos a través del puerto I2C, les dejó el procedimiento:

Para el arduino receptor.

#include <Wire.h>
#include <LiquidCrystal.h>
int dec_sw1, dec_sw2 = 0;
int mensaje = 0;

const int rs = 12, en = 11, d4 = 5, d5 = 4, d6 = 3, d7 = 2;
LiquidCrystal lcd(rs, en, d4, d5, d6, d7);

void setup() {
  // put your setup code here, to run once:

lcd.begin(16, 2);
Wire.begin(1);
Wire.onReceive(receiveData);
Serial.begin(9600);

}

void loop() {
  // put your main code here, to run repeatedly:
delay(100);
}

void receiveData(int howMany){
  while(1 < Wire.available()){
    int sw1 = Wire.read();
    Serial.println(sw1);
    int sw2 = Wire.read();
    Serial.println (sw2);

    int dec_sw1 = 0;
    int dec_sw2 = 0;
    
     if (sw1 == 1){
      dec_sw1 = pow(2,0);
     }
     if (sw2 ==1){
      dec_sw2 = pow(2,1);
     }

     mensaje = dec_sw1 + dec_sw2;
     Serial.print("Num de Mensaje: "); Serial.println(mensaje);

     switch (mensaje) {
    case 0:                 //escribe en el display el numero 1
      lcd.clear();
      lcd.setCursor(0, 0);
      lcd.print("Orden N 1");
      lcd.setCursor(0, 1);
      lcd.print("Perro Caliente");
     break;
     case 1:
      lcd.clear();
      lcd.setCursor(0, 0);
      lcd.print("Orden N 12");
      lcd.setCursor(0, 1);
      lcd.print("Hamburguesa senc");
      break;
      case 2:
      lcd.clear();
      lcd.setCursor(0, 0);
      lcd.print("Orden N 22");
      lcd.setCursor(0, 1);
      lcd.print("Pizza Mexicana");
      break;
      case 3:
      lcd.clear();
      lcd.setCursor(0, 0);
      lcd.print("Orden N 100");
      lcd.setCursor(0, 1);
      lcd.print("Arepa Rellena");
      break;
      default: 
      lcd.clear();
      lcd.setCursor(0, 0);
      lcd.print("Bienvenidos");
      lcd.setCursor(0, 1);
      lcd.print("Restaurante Fit");
     }
  }
}

Para el arduino que envía:

#include <Wire.h>

bool sw1 = 0;
bool sw2 = 0;

void setup() {
  // put your setup code here, to run once:
Wire.begin();
Serial.begin(9600);
pinMode(11, INPUT);
pinMode(10, INPUT);

}

void loop() {
  // put your main code here, to run repeatedly:

sw1 = digitalRead(11);
sw2 = digitalRead(10);

Serial.println(sw1);
Serial.println(sw2);

Wire.beginTransmission(1);
Wire.write(sw1);
Wire.write(sw2);
Wire.endTransmission();

delay(500);

}

Y el diagrama es este:

Sketch I2C - LCD_bb.png

like el que utiliza tinkercad como simulador de arduino

Hola. Para las personas que no tengan un arduino, puede usar la herramienta en línea Tinkercad es de Autodesk. Tiene una plataforma interactiva donde podemos simular nuestro arduino y colocar los componentes que deseemos.

Simulador Online para Arduino

La electrónica es mágica

Arduino.png

Interesante vídeo, bastante fácil.![](Screenshot_1.png

Editing Components.png

led Amarillo
led Azul
led Blanco (7 estrellas)
led Rojo
la Bandera de mi país 😉 Venezuela

int amarillo = 13;
int azul = 12;
int blanco = 11;
int blanco1 = 10;
int blanco2 = 9;
int blanco3 = 8;
int blanco0 = 7;
int blanco_5 = 6;
int blanco6 = 5;
int rojo = 4;
int milisegundos = 400;

void setup()
{
pinMode(amarillo, OUTPUT);
pinMode(azul, OUTPUT);
pinMode(blanco, OUTPUT);
pinMode(blanco1, OUTPUT);
pinMode(blanco2, OUTPUT);
pinMode(blanco3, OUTPUT);
pinMode(blanco0, OUTPUT);
pinMode(blanco_5, OUTPUT);
pinMode(blanco6, OUTPUT);
pinMode(rojo, OUTPUT);
}

void loop()
{
digitalWrite(amarillo, HIGH);
digitalWrite(azul, HIGH);
digitalWrite(blanco, LOW);
digitalWrite(blanco1, HIGH);
digitalWrite(blanco2, LOW);
digitalWrite(blanco3, HIGH);
digitalWrite(blanco0, HIGH);
digitalWrite(blanco_5, HIGH);
digitalWrite(blanco6, HIGH);
digitalWrite(rojo, LOW);
delay(milisegundos);
digitalWrite(amarillo, LOW);
delay(milisegundos *1);
digitalWrite(azul, LOW);
delay(milisegundos *2);
digitalWrite(blanco, HIGH);
delay(milisegundos);
digitalWrite(blanco1, LOW);
delay(milisegundos);
digitalWrite(blanco2, HIGH);
delay(milisegundos);
digitalWrite(blanco3, LOW);
delay(milisegundos);
digitalWrite(blanco0, HIGH);
delay(milisegundos);
digitalWrite(blanco_5, LOW);
delay(milisegundos);
digitalWrite(blanco6, HIGH);
delay(milisegundos);
digitalWrite(rojo, HIGH);
delay(milisegundos);

}

Entonces asi se hacen las luces navideñas de mi arbolito jajaja

Que buena clase

Excelente Clase Freddy muchas gracias por compartir con nosotros.

Lo logré: Construí un semáforo.

SEMAFORO PATRILOAIZA.png
Screenshot_1.png

Y el semaforito? xD
Screenshot_2020-04-26 Autodesk Circuits.png

arduino.PNG

En tinkercad tienen todo lo necesario para trabajar con Arduino y la protoboard.
https://www.tinkercad.com/

interesante!!

arduino.JPG

Que tema tan poderoso! Ya me imagino un dron haciendo el mandao´ a la tienda en la era covid19

en mi opinion para tener un conocimiento mas amplio sobre los arduinos hay un video en youtobe donde lo explican, se llama,
Qué es Arduino y cómo crear un proyecto real
o el link:
https://www.youtube.com/watch?v=YDbLhaakNAw

www.tinkercad.com es lo mejor !

ARDUINO1.png
Captura de pantalla de 2020-04-11 01-16-53.png

fredy es un personaje