Loading
profdanieltedesco
This is a live streamed presentation. You will automatically follow the presenter and see the slide they're currently on.
Prof. Daniel Tedesco
Ejercicios
Diagrama:
Receptor IR: pin 11 Arduino
LED RGB:
LED Rojo: Resistencia 220 y pin 2 Arduino
LED Verde: Resistencia 220 y pin 3 Arduino
LED Azul: Resistencia 220 y pin 4 Arduino
Negativo: GND o negativo (sin resistencia)
Diagrama:
Receptor IR: pin 11 Arduino
LED: pin 13 Arduino + Ressistencia 220 Ohms
Buzzer: pin 8 Arduino
char NOMBRE[5]= "LabTI";
char VELOCIDAD = '4'; // '1'=1200, '2'=2400, '3'=4800, '4'=9600, '5'=19200, '6'=38400, '7'=57600, '8'=115200,
char pin[5] = "4444";
void setup() {
Serial.begin(9600);
pinMode(13, OUTPUT);
digitalWrite(13, HIGH);
delay(10000);
digitalWrite(13, LOW);
Serial.print("AT");
delay(1000);
Serial.print("AT+NAME");
Serial.print(NOMBRE);
delay(1000);
Serial.print("AT+BAUD");
Serial.print(VELOCIDAD);
delay(1000);
Serial.print("AT+PIN");
Serial.print(pin);
delay(1000);
}
void loop() {
digitalWrite(13, !digitalRead(13));
delay(500);
}#include <SoftwareSerial.h> // Incluimos la librería SoftwareSerial
SoftwareSerial BT(10,11); // Definimos los pines RX y TX del Arduino conectados al Bluetooth
void setup()
{
BT.begin(9600); // Inicializamos el puerto serie BT (Para Modo AT 2)
Serial.begin(9600); // Inicializamos el puerto serie
}
void loop()
{
if(BT.available()) // Si llega un dato por el puerto BT se envía al monitor serial
{
Serial.write(BT.read());
}
if(Serial.available()) // Si llega un dato por el monitor serial se envía al puerto BT
{
BT.write(Serial.read());
}
}#include <SoftwareSerial.h> // Incluimos la librería SoftwareSerial
SoftwareSerial BT(10,11); // Definimos los pines RX y TX del Arduino conectados al Bluetooth
void setup()
{
BT.begin(9600); // Inicializamos el puerto serie BT que hemos creado
Serial.begin(9600); // Inicializamos el puerto serie
}
void loop()
{
if(BT.available()) // Si llega un dato por el puerto BT se envía al monitor serial
{
Serial.write(BT.read());
}
if(Serial.available()) // Si llega un dato por el monitor serial se envía al puerto BT
{
BT.write(Serial.read());
}
}Ver en el slide siguiente Alimentación del arduino
ATENCIÓN
En nuestras placas él
puerto Vin está cruzado
// Define los pines del puente H doble
const int ENA = 9; // Velocidad motor A
const int IN1 = 2; // Dirección motor A
const int IN2 = 3; // Dirección motor A
const int ENB = 10; // Velocidad motor B
const int IN3 = 4; // Dirección motor B
const int IN4 = 5; // Dirección motor B
void setup() {
// Inicializa los pines como salidas
pinMode(ENA, OUTPUT);
pinMode(IN1, OUTPUT);
pinMode(IN2, OUTPUT);
pinMode(ENB, OUTPUT);
pinMode(IN3, OUTPUT);
pinMode(IN4, OUTPUT);
}
void loop() {
// Mueve el motor A hacia adelante a la mitad de velocidad
digitalWrite(IN1, HIGH);
digitalWrite(IN2, LOW);
analogWrite(ENA, 128); // Valor entre 0 y 255 para la velocidad
// Mueve el motor B hacia adelante a la mitad de velocidad
digitalWrite(IN3, HIGH);
digitalWrite(IN4, LOW);
analogWrite(ENB, 128);
delay(2000); // Espera 2 segundos
// Detiene ambos motores
digitalWrite(IN1, LOW);
digitalWrite(IN2, LOW);
analogWrite(ENA, 0); // Detiene el motor A
digitalWrite(IN3, LOW);
digitalWrite(IN4, LOW);
analogWrite(ENB, 0); // Detiene el motor B
delay(2000); // Espera 2 segundos
// Mueve el motor A hacia atrás a la mitad de velocidad
digitalWrite(IN1, LOW);
digitalWrite(IN2, HIGH);
analogWrite(ENA, 128);
// Mueve el motor B hacia atrás a la mitad de velocidad
digitalWrite(IN3, LOW);
digitalWrite(IN4, HIGH);
analogWrite(ENB, 128);
delay(2000); // Espera 2 segundos
// Detiene ambos motores nuevamente
digitalWrite(IN1, LOW);
digitalWrite(IN2, LOW);
analogWrite(ENA, 0);
digitalWrite(IN3, LOW);
digitalWrite(IN4, LOW);
analogWrite(ENB, 0);
delay(2000); // Espera 2 segundos
}
/* prueba de encendido de led a través del monitor
serial. para pruebas, abrir el monitor serial y digitar 1 para encender el led
o digitar 2 para apagarlo
Luego conectar el bluethoot y encender y aappgar desde la app
Prof. Daniel Tedesco*/
int led=13;// creamos la variable led en el pin 13
int estado=0; // creamos la variable estado con lectura=0
void setup() {
Serial.begin(9600);//inicializamos monitor serie
pinMode (led, OUTPUT);// seteamos el pin 13 correspondinte al led como salida
}
void loop() {
if (Serial.available()>0){ // condicional si el valor del monitor serie es mayor a 0, se lee el estado
estado = Serial.read();
}
if (estado=='1'){ //si el estado es igual a 1 (encendido) se enciende el led
digitalWrite(led, HIGH);
}
if(estado=='2'){ // si el estado es igual a 2, se apaga el led
digitalWrite(led, LOW);
}
}
/* prueba de encendido de led a través del monitor
serial. para pruebas, abrir el monitor serial y digitar 1 para encender el led
o digitar 2 para apagarlo
Luego conectar el bluethoot y encender y aappgar desde la app
Prof. Daniel Tedesco*/
int led=13;// creamos la variable led en el pin 13
int estado=0; // creamos la variable estado con lectura=0
void setup() {
Serial.begin(9600);//inicializamos monitor serie
pinMode (led, OUTPUT);// seteamos el pin 13 correspondinte al led como salida
}
void loop() {
if (Serial.available()>0){ // condicional si el valor del monitor serie es mayor a 0, se lee el estado
estado = Serial.read();
}
if (estado=='1'){ //si el estado es igual a 1 (encendido) se enciende el led
digitalWrite(led, HIGH);
}
if(estado=='2'){ // si el estado es igual a 2, se apaga el led
digitalWrite(led, LOW);
}
}
Diseñá tu App en https://appinventor.mit.edu/
int led=9;
int data=0;
void setup() {
Serial.begin(9600);
pinMode(led, OUTPUT);
}
void loop() {
if(Serial.available()>0){
data=Serial.read();
Serial.println(data);
analogWrite(led, data);
}
}Diseño
Diseñá tu App en:
Slider:
Max. Value: 255
Min. Value: 10
Number of steps: 100
Bloques
Desafío: ¿Cómo conectarías el
módulo Bluetooth?
¿Cuál es el error de conexión?
int led = 13;
int estado = 0;
void setup(){
Serial.begin(9600);
pinMode(led, OUTPUT);
}
void loop() {
if(Serial.available()>0){
estado = Serial.read();
}
if(estado=='1'){
digitalWrite(led, HIGH);
}
if(estado=='2'){
digitalWrite(led, LOW);
}
}int izqA = 5;
int izqB = 6;
int derA = 9;
int derB = 10;
int vel = 255;
int estado = 'c';
int sensor = A0;
int led = 3;
int led1= 2;
int lectura;
int rojo = 11;
int rojo1 = 12;
int blanco = 4;
int blanco1 = 7;
int buz = 8;
void setup() {
Serial.begin(9600);
pinMode(izqA, OUTPUT);
pinMode(izqB, OUTPUT);
pinMode(derA, OUTPUT);
pinMode(derB, OUTPUT);
pinMode(led, OUTPUT);
pinMode(led1, OUTPUT);
pinMode(13, OUTPUT);
pinMode(rojo, OUTPUT);
pinMode(rojo1, OUTPUT);
pinMode(blanco, OUTPUT);
pinMode(blanco1, OUTPUT);
pinMode(buz, OUTPUT);
digitalWrite(blanco, 1);
digitalWrite(blanco1, 1);
digitalWrite(rojo, 1);
digitalWrite(rojo1, 1);
}
void loop() {
if(Serial.available()>0){
estado = Serial.read();
}
if(estado=='a'){
analogWrite(derB, 0); //adelante
analogWrite(izqB, 0);
analogWrite(derA, vel);
analogWrite(izqA, vel);
}
if(estado=='b'){
analogWrite(derB, 0); //derecha
analogWrite(izqB, 0);
analogWrite(derA, vel);
analogWrite(izqA, 0);
}
if(estado=='c'){
analogWrite(derB, 0); //parar los motores
analogWrite(izqB, 0);
analogWrite(derA, 0);
analogWrite(izqA, 0);
}
if(estado=='d'){
analogWrite(derB, 0); //izquierda
analogWrite(izqB, 0);
analogWrite(derA, 0);
analogWrite(izqA, vel);
}
if(estado=='e'){
analogWrite(derB, vel); //atras
analogWrite(izqB, vel);
analogWrite(derA, 0);
analogWrite(izqA, 0);
}
{
lectura = analogRead(sensor);
Serial.println(lectura);
if (lectura <300) {
digitalWrite( led, HIGH);
digitalWrite( led1, HIGH);
}
else {
digitalWrite( led, LOW);
digitalWrite( led1, LOW);
}
}
if(estado=='l'){
digitalWrite(13, 1);
}
if(estado=='m'){
digitalWrite(13, 0);
}
if(estado=='h'){
digitalWrite(derA, 1);
}
if(estado=='j'){
digitalWrite(derA, 0);
}
if(estado=='r'){
digitalWrite(derB, 1);
}
if(estado=='s'){
digitalWrite(derB, 0);
}
if(estado=='n'){
digitalWrite(izqA, 1);
}
if(estado=='k'){
digitalWrite(izqA, 0);
}
if(estado=='p'){
digitalWrite(izqB, 1);
}
if(estado=='u'){
digitalWrite(izqB, 0);
}
if(estado == '1'){
digitalWrite(buz, HIGH);
}
if(estado == '2'){
digitalWrite(buz, LOW);
}
}PROYECTO EXTRA
#include <SoftwareSerial.h> // Libreria de Tx Rx Serial para Bluetooth
#include <Servo.h>// Incluye la Libreria Servo
int bluetoothTx = 0; // bluetooth tx al pin 0
int bluetoothRx = 1; // bluetooth rx al pin 1
SoftwareSerial bluetooth(bluetoothTx, bluetoothRx);
Servo ser1;
Servo ser2;
Servo ser3;
Servo ser4;
void setup() {
Serial.begin(9600);
bluetooth.begin(9600); // Setea la conexion Serial del Bluetooth al Cel
ser1.attach(3);
ser2.attach(9);
ser3.attach(10);
ser4.attach(11);
}
void loop() {
//Lee desde el bluetooth y escribe al USB Serial
if(bluetooth.available()>= 0 )
{
int servopos = bluetooth.read();
int servopos1 = bluetooth.read();
int realservo = (servopos1 *256) + servopos;
Serial.println(realservo);
if (realservo >= 1000 && realservo <1180){
int servo1 = realservo;
servo1 = map(servo1, 1000,1180,0,180);
ser1.write(servo1);
Serial.println(" ON");
delay(10);
}
if (realservo >=2000 && realservo <2180){
int servo2 = realservo;
servo2 = map(servo2,2000,2180,0,180);
ser2.write(servo2);
Serial.println(" ON");
delay(10);
}
if (realservo >=3000 && realservo <3180){
int servo3 = realservo;
servo3 = map(servo3,3000,3180,0,180);
ser3.write(servo3);
Serial.println(" ON");
delay(10);
}
if (realservo >=4000 && realservo <4180){
int servo4 = realservo;
servo4 = map(servo4,4000,4180,0,180);
ser4.write(servo4);
Serial.println("ON");
delay(10);
}
}
}
Diseñá tu App en https://appinventor.mit.edu/
PROYECTO EXTRA
#include <Stepper.h>
#define STEPS 64 // Cambiar a 100 y a 200
// Secuencia 1-3-2-4
Stepper motor(STEPS, 8, 10, 9, 11);
int pasos;
char val;
void setup() {
Serial.begin(9600);
}
void loop() {
if( Serial.available() ) {
val = Serial.read();
Serial.print(val);
if( val == '1' )
{
motor.setSpeed(200);
motor.step(5);
}
if( val == '2' )
{
motor.setSpeed(200);
motor.step(-5);
}
if( val == '3' )
{
motor.setSpeed(200);
motor.step(10);
}
if( val == '4' )
{
motor.setSpeed(200);
motor.step(-10);
}
if( val == '5' )
{
motor.setSpeed(200);
motor.step(15);
}
if( val == '6' )
{
motor.setSpeed(200);
motor.step(-15);
}
if( val == '7' )
{
motor.setSpeed(200);
motor.step(20);
}
if( val == '8' )
{
motor.setSpeed(200);
motor.step(-20);
}
if( val == 'A' )
{
motor.setSpeed(200);
motor.step(10);
}
if( val == 'B' )
{
motor.setSpeed(200);
motor.step(-10);
}
}
}Diseñá tu App en https://appinventor.mit.edu/
PROYECTO EXTRA
PCA9685 (Controlador de Servos):
Indicaciones de conexión
Diagrama
Código