Y3. Arduino
https://www.tinkercad.com/learn/circuits
https://epalsite.com/Arduino-Starter-Kit/
User Name: User_MV01
Passward: sz12346688
Link a conversion de resistencias
El primer paso es comprar el arduino http://www.crcibernetica.com
El segundo es descargar el software http://arduino.cc/en/Main/Software
Notas
Centrifuga, http://www.instructables.com/id/Centrifuge/
A continuación los pasos para iniciar el uso del Arduino
1. Primero hay que conectar el Arduino.
Es necesario seleccionar el tipo de Arduino que tengamos, como el nano o el uno.
Para ellos se selecciona del Menú, Tools, Board
Tools Menu < Board
Y se seleccionar el tipo de Arduino.
En el caso del Nano, se requiere instalar unos drivers adicionales
WINDOWS CH340G Driver Download link : Driver for Windows 7
MAC Link to additional drivers in case the above instructions don't work.
2. El código
Arduino se programa en sketches, o bloques y se programa en lenguaje C++
Arduino tiene dos bloques, uno que corre una sola vez con la función setup()
El segundo bloque se repite constantemente mediante la función loop ()
void type functions, setup() and loop().
El sketch o programa más sencillo es:
1
2
3
4
5
6
7
8
9
void setup()
{
}
void loop()
{
}
3. Los Pines y sitios donde se conectan las partes o piezas
Un Ardunio tiene dos grandes rectángulos con múltiples cuadrados pequeños.
Cada cuadro pequeño es un pin y es donde se conectan las partes al Arduino.
Cada pin está numerado para encontrarlos fácilmente con color blanco.
Para conectar el Led, la electricidad correrá desde el pin 13 y para cerrar el circuito se conecta a tierra (GND).
Se usa una resistencia para que no se queme el Led. Se puede hacer en una protoboard o directamente en el Arduino.
4. Programemos el Arduino para conectar un LED.
Conectaremos el LED en el pin 13
Para ello le indicaremos a Arduino que el pin estará ahí, con la función int ledPin=13;
(lo que le estamos indicando es que integre "int" que lo que nosotros llamamos "ledPin" estará en el lugar "13")
Recuerde que cada bloque se separa por { } y que cada línea requiere cerrarse con punto y coma ;
2
3
4
5
6
7
8
9
10
11
int ledPin = 13;
void setup()
{
}
void loop()
{
}
En el primer bloque llamado setup () le indicaremos al Arduino si le conectaremos un sensor (INPUT) o una salida (OUTPUT) con la función pinMode (nombre, INPUT) o bien pinMode (nombre, OUTPUT). En este caso como es un Led que se "enciende" es una salida pues le enviamos la señal para que se encienda. Si fuese un sensor de luz, temperatura, ph, etc sería una entrada dado que recibiríamos la señal de afuera.
Como le indicamos al Arduino que nuestro led se llama ledPin, se debe usar el mismo nombre acá para indicarle que además es un dispositivo de salida.
1
2
3
4
5
6
7
8
9
10
11
int ledPin = 13;
void setup()
{
pinMode(ledPin, OUTPUT);
}
void loop()
{
}
Ahora programaremos el segundo que se repite una y otra vez, por eso se llama loop(). Y como queremos que esté encendido, le diremos al Arduino con la función digitalWrite() que nuestro "ledPin" estará HIGH si está encendido o LOW si está apagado
1
2
3
4
5
6
7
8
9
10
11
int ledPin = 13;
void setup()
{
pinMode(ledPin, OUTPUT);
}
void loop()
{
digitalWrite(ledPin, HIGH);
}
Nota, En este caso el Arduino envía o escribe (write) una señal digital (1 o 0).
En un sensor de luz donde la señal el de entrada y es análoga (con más números) se le indica y conecta en los análogos y se le indica al arduino por ejemplo que es una analogRead / analogWrite
5. Enviemos la programación al Arduino (Compilemos)
Hay que verificar que el Arduino esté conectado al un puerto USB correcto
Para ello se conecta el Arduino y se verifica en el Menú de Tools, Serial Port
Por lo general aparecerá COM y un número que corresponde al puerto.
Una vez conectado de da click a la flecha derecha que está al lado del CHECK
Se puede hacer también que se apague cambiando de HIGH a LOW
Arduino Software with button highlighted
6. Hagamos que la señal cambie o se detenga
Como la señal se envía de manera muy veloz, una manera de indicarle al Arduino que deseamos frenar o detener la señal es mediante la función delay por cierto cantidad de mili segundos, 1 segundo son 1000 mili segundos, por lo que le indicamos delay(2000) la señal para que se detenga por 2 segundos. Además podemos verlo en operación, si le indicamos que se encienda HIGH y se apague LOW.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
int ledPin = 13;
void setup()
{
pinMode(ledPin, OUTPUT);
}
void loop()
{
digitalWrite(ledPin, HIGH);
delay(2000);
digitalWrite(ledPin, LOW);
delay(2000);
}
Se puede usar el led interno
7. Sensor de LUZ
En el curso conectamos un sensor de luz en el Pin 2
int sensor1=2; // Le estamos indicando que nuestro sensor está en pin 2
int led= 13; // Le estamos activando el led interno
void setup() {
// put your setup code here, to run once:
Serial.begin(9600); // Nuestro sensor de luz está en este rango
Serial.print("iniciando lectura"); // Podemos indicar que imprima algo, solo para saber que empezó
pinMode(led,OUTPUT); // Es importante declarar si la señal es INPUT o OUTPUT
}
void loop() {
// put your main code here, to run repeatedly:
int luz=analogRead (sensor1); // El sensor de Luz genera muchos datos por eso es Analog
delay(5); // El delay es para darle tiempo de que podamos ver nosotros la señal
Serial.println(luz); // Como le indicamos que Luz es la lectura del sensor, ahora podemos
// invocar a Luz y como se imprime, sabemos que valor tiene.
if(luz<10){ // Ahora podemos programar cuando se enciende o apaga
digitalWrite(led,HIGH);
} else {
digitalWrite(led,LOW);
}
}
8. Sensor de Movimiento
const int ledPin= 13;
const int inputPin= 2;
void setup(){
pinMode(ledPin, OUTPUT);
pinMode(inputPin, INPUT);
}
void loop(){
int value= digitalRead(inputPin);
if (value == HIGH)
{
digitalWrite(ledPin, HIGH);
delay(60000);
digitalWrite(ledPin, LOW);
}
else
{
digitalWrite(ledPin, LOW);
}
}
9. Sensor de temperatura
int sensor=0;
void setup() {
// put your setup code here, to run once:
Serial.begin(9600);
Serial.print("iniciando lectura");
}
void loop() {
// put your main code here, to run repeatedly:
float valor=analogRead(sensor); // FLOAT ES PARA DATOS CON DECIMALES
delay (500);
valor= valor*0.004882814;//CERO CERO CUATRO OCHO OCHO DOS OCHO UNO CUATRO
float grados= (valor -0.5)*100.0;
Serial.println(grados);
}
10.Pantalla LCD
http://www.crcibernetica.com/basic-8x2-character-lcd-black-on-yellow-green-5v/
#include <LiquidCrystal.h>
LiquidCrystal lcd(12, 11, 5, 4, 3, 2); // Le indica al Arduino que estamos usando una pantalla en esos pines
void setup() {
lcd.begin(8, 2); // Es 8,2 porque la pantalla que compramos es de 8x2
lcd.print("hello, world!"); // Print es para palabras, si se quiere poner algún dato seria "lcd.write()"
}
void loop() {
}
Ver el detalle de la programación en http://www.circuitbasics.com/how-to-set-up-an-lcd-display-on-an-arduino/
LiquidCrystal()
The LiquidCrystal() function sets the pins the Arduino uses to connect to the LCD. You can use any of the Arduino’s digital pins to control the LCD. Just put the Arduino pin numbers inside the parentheses in this order: LiquidCrystal(RS, E, D4, D5, D6, D7). RS, E, D4, D5, D6, D7 are the LCD pins.
For example, say you want LCD pin D7 to connect to Arduino pin 12. Just put “12” in place of D7 in the function like this: LiquidCrystal(RS, E, D4, D5, D6, 12). This function needs to be placed before the void setup() section of the program.
lcd.begin()
This function sets the dimensions of the LCD. It needs to be placed before any other LiquidCrystal function in the void setup() section of the program. The number of rows and columns are specified as lcd.begin(columns, rows). For a 16×2 LCD, you would use lcd.begin(16, 2), and for a 20×4 LCD you would use lcd.begin(20, 4).
lcd.clear()
This function clears any text or data already displayed on the LCD. If you use lcd.clear() with lcd.print() and the delay() function in the void loop() section, you can make a simple blinking text program:
#include <LiquidCrystal.h>
LiquidCrystal lcd(12, 11, 5, 4, 3, 2);
void setup() {
lcd.begin(16, 2);
}
void loop() {
lcd.print("hello, world!");
delay(500);
lcd.clear();
delay(500);
}
11. Hagamos un controlador de un aparato más grande (relay)
Relay
Notas.
Para controlar cualquier aparato electrónico
http://www.circuitbasics.com/build-an-arduino-controlled-power-outlet/
Programación gráfica https://mydevices.com/cayenne/landing/jumpstart-arduino-projects-cayenne/
int puerto_numero_13=13;
void setup() {
// put your setup code here, to run once:
pinMode(puerto_numero_13,OUTPUT);
}
void loop() {
// put your main code here, to run repeatedly:
digitalWrite(puerto_numero_13, HIGH );
delay(1000);
digitalWrite(puerto_numero_13,LOW);
delay(1000);
}
Otro ejercicio
const int led1 = 13;
const int led2 = 11;
void setup() {
// put your setup code here, to run once:
pinMode(led1, OUTPUT);
pinMode(led2, OUTPUT);
}
void loop() {
// COMENTARIOS
// PROFE PONGAME 100
digitalWrite(led1, HIGH);
delay(1000);
digitalWrite(led1, LOW);
Touch Screen