// ARDUINO UNO
#include <LiquidCrystal.h>
#include <DHT.h>
#define DHTpin 7
#define DHTtype DHT11
DHT dht11 (DHTpin, DHTtype);
LiquidCrystal lcd(13,12,11,10,9,8);
void setup() {
// Serial.begin(9600);
dht11.begin();
lcd.begin(16,2);
lcd.clear();
pinMode(2,OUTPUT);//ejemplo q sea un motor
}
void loop() {
int temp,hume;
temp = dht11.readTemperature();
hume = dht11.readHumidity();
if(temp>=20){
digitalWrite(2,HIGH);
}
else {
digitalWrite(2,LOW);
}
if(temp<=90)
{
digitalWrite(2,HIGH);
}
else {
digitalWrite(2,LOW);
}
lcd.setCursor(0,0);
lcd.print("Temperatura ");
lcd.print(temp);
lcd.print("C");
delay(2000);
}
martes, 10 de enero de 2017
PCB Wizard - Placa Inversión de Giro
Placa de Control de Inversion de Giro de un Motor Trifásico
Ejemplo la Conexión es similar para un Motor Trifásico
Cuenta de Display del 20 hasta 60 Exms.
//PROGRAMACIÓN PIC 18F4550
//Conteo desde el numero 20 hasta solo 60
unsigned short NUMERO[]={0x3F,0x06,0x5B,0x4F,0x66,0x6D,0x7C,0x07,0x7F,0x67};
void main() {
int k=2; //decenas
int j=0; //unidades
int n=20; //cantidades de veces q se repiten
trisd=0x00; //apagado los display
trisb=0x00; //apagados el pulso para los display
portd=0;
portb=0;
while(1){
portd=NUMERO[k];
portb.f0=1;
delay_ms(200);
portb=0;
j++;
if(j==10){
j=0;
k++;
if(k==6)
k=2;
if(j==0)
j=0;
}
portd=NUMERO[j];
portb.f1=1;
delay_ms(200);
portb=0;
n++;
}
}
lunes, 9 de enero de 2017
Control de Servo BLUETOOTH
// ARDUINO UNO
#include <SoftwareSerial.h> //Incluimos libreria para crear nuestro propio RX-TX
SoftwareSerial NZV (2,3); //2 es igual a RX
//3 es igual a TX
#include <Servo.h> //Incluimos La libreria del MicroServo
Servo servo; //Creo el primer objeto cone el nombre "servo"
int puls_rest =0; //Estas tres variables son creadas para almacenar en los pines A0,A1,A2
int puls_der =0; //Configuramos que esten los tres para inicializar a los pulsadores en 0
int puls_izq =0; //que se encuentre en un estado cero
void setup()
{ Serial.begin(9600);
NZV.begin(9600);
servo.attach(5,500,2400); // Asocia el servo al pin 3, define el min y max del ancho del pulso
// eso depende del fabricante del servo
pinMode(A0,INPUT); //Para los 3 pulsadores
pinMode(A1,INPUT);
pinMode(A2,INPUT);
}
void loop()
{ int a;
//-------------------------Funcion de Recepcion
if(Serial.available() > 0){
a = Serial.read();
}
//-------------------------Funcion de Transmision
if(a == '1'){
servo.write(0);
}
if(a == '2'){
servo.write(90);
}
if(a == '3'){
servo.write(180);
}
puls_rest = digitalRead(A0); //Lee el valor del pin si esta en HIGH-LOW
puls_der = digitalRead(A1); //Lee el valor del pin si esta en HIGH-LOW
puls_izq = digitalRead(A2); //Lee el valor del pin si esta en HIGH-LOW
if(puls_rest==HIGH){
servo.write(0); //el servo Gira a 0 grados
delay(25); //Espera 25 mili segundos a que el servo llegue a la posicion
}
if(puls_der==HIGH){
servo.write(90); //el servo Gira a 90 grados
delay(25);
}
if(puls_izq==HIGH){
servo.write(180); //el servo Gira a 180 grados
delay(25);
}
}
Control de Servomotor con un Pulsador
//PROGRAMACIÓN ARDUINO-UNO
#include <Servo.h> //Incluimos La libreria del MicroServo
Servo servo; //Creo el primer objeto cone el nombre "servo"
void setup()
{ Serial.begin(9600);
servo.attach(9,500,2400); // Asocia el servo al pin 9
, define el min y max del ancho del pulso
// eso depende del fabricante del servo
pinMode(A0,INPUT); //Configuramos INPUT para Pulsador
}
void loop()
{
int pulsador;
pulsador = digitalRead(A0); //Almacenamos en la variable pulsador digitalRead(A0);
//Lee el valor del pin si esta en HIGH-LOW
if(pulsador==HIGH){ //Si el pulsador es pulsado se activa el servomotor
servo.write(0); //el servo Gira a 0 grados
delay(25); //Espera 25 mili segundos a que el servo llegue a la posicion
servo.write(90); //el servo Gira a 90 grados
delay(25);
servo.write(180); //el servo Gira a 180 grados
delay(25);
}
}
#include <Servo.h> //Incluimos La libreria del MicroServo
Servo servo; //Creo el primer objeto cone el nombre "servo"
void setup()
{ Serial.begin(9600);
servo.attach(9,500,2400); // Asocia el servo al pin 9
, define el min y max del ancho del pulso
// eso depende del fabricante del servo
}
void loop()
{
int pulsador;
pulsador = digitalRead(A0); //Almacenamos en la variable pulsador digitalRead(A0);
//Lee el valor del pin si esta en HIGH-LOW
if(pulsador==HIGH){ //Si el pulsador es pulsado se activa el servomotor
servo.write(0); //el servo Gira a 0 grados
delay(25); //Espera 25 mili segundos a que el servo llegue a la posicion
servo.write(90); //el servo Gira a 90 grados
delay(25);
servo.write(180); //el servo Gira a 180 grados
delay(25);
}
}
DISPLAY 7 SEGMENTOS PIC18F4550
//DISPLAY 7 SEGMENTOS PIC18F4550
void main() {
unsigned short NUMERO[]={0x3F,0x06,0x5B,0x4F,0x66,0x6D,0x7C,0x07,0x7F,0x67};
trisc.f0=1;
trisd=0;
portd=0;
while(1){
int k=0;
for(k=0; k<=9; k++){
portd=NUMERO[k];
delay_ms(200);
}
for(k=8; k>=0; k--){
portd=NUMERO[k];
delay_ms(200);
}
}
}
Encender y Apagar un led con un button-PIC18f4550
//MODULO FULL-DOWN PIC 18F4550
void main() {
trisc.f0=1;
trisd=0;
portd=0;
while(1){
int estado;
int estadoAnterior;
int salida;
estado=portc.f0;
if((estado==1)&&(estadoAnterior==0)){
salida=1-salida;
delay_ms(20);
}
estadoAnterior=estado;
if(salida==1){
portd=1;
}
else{
portd=0;
}
}
}
void main() {
trisc.f0=1;
trisd=0;
portd=0;
while(1){
int estado;
int estadoAnterior;
int salida;
estado=portc.f0;
if((estado==1)&&(estadoAnterior==0)){
salida=1-salida;
delay_ms(20);
}
estadoAnterior=estado;
if(salida==1){
portd=1;
}
else{
portd=0;
}
}
}
Configuración LCD 16x2 PIC 18F4550 mikroC PRO
// LCD module connections
sbit LCD_RS at RD4_bit;
sbit LCD_EN at RD5_bit;
sbit LCD_D4 at RD0_bit;
sbit LCD_D5 at RD1_bit;
sbit LCD_D6 at RD2_bit;
sbit LCD_D7 at RD3_bit;
sbit LCD_RS_Direction at TRISD4_bit;
sbit LCD_EN_Direction at TRISD5_bit;
sbit LCD_D4_Direction at TRISD0_bit;
sbit LCD_D5_Direction at TRISD1_bit;
sbit LCD_D6_Direction at TRISD2_bit;
sbit LCD_D7_Direction at TRISD3_bit;
// End LCD module connections
char txt1[] = "mikroElektronika";
char txt2[] = "EasyPIC6";
char txt3[] = "Lcd4bit";
char txt4[] = "example";
char i; // Loop variable
void main() {
Lcd_Init(); // Initialize LCD
Lcd_Cmd(_LCD_CLEAR); // Clear display
Lcd_Cmd(_LCD_CURSOR_OFF); // Cursor off
Lcd_Out(1,6,"WELCOME"); // Write text in first row
Lcd_Out(2,4,"HELLO WORLD"); // Write text in second row
Delay_ms(2000);
Lcd_Cmd(_LCD_CLEAR);
Lcd_Out(1,4,"ELECTRONIC"); // Write text in first row
Lcd_Out(2,5,""); // Write text in second row
Delay_ms(2000);
Lcd_Chr_Cp('O');
delay_ms(200);
Lcd_Chr_Cp('F');
delay_ms(200);
Lcd_Chr_Cp(' ');
delay_ms(200);
Lcd_Chr_Cp('N');
delay_ms(200);
Lcd_Chr_Cp('Z');
delay_ms(200);
Lcd_Chr_Cp('V');
delay_ms(200);
delay_ms(2000);
lcd_cmd(_lcd_clear);
while(1){
int k;
for(k=0; k<=16; k++){
Lcd_Out(1,k,"ZEVALLOS");
delay_ms(200);
lcd_cmd(_lcd_clear);
}
for(k=15; k>=0; k--){
Lcd_Out(1,k,"VEGA");
delay_ms(200);
lcd_cmd(_lcd_clear);
}
}
}
sábado, 7 de enero de 2017
Control de Inversión Giro Motor Trifasico - PIC 16F877A
// Programacion de Inversion de Giro Motor Trifasico - LCD 16x2
void main()
{
unsigned short estado;
//Config de LCD 16x2
lcd_config(&portb,1,0,2,7,6,5,4); //RS, EN, WR, D7 .. D4
lcd_cmd(lcd_clear);
lcd_cmd(lcd_cursor_off);
lcd_out(1,5,"!!MOTOR!!");
lcd_out(2,4,"!!APAGADO!!");
trisb=0; //Config el puerto B como Salida
trisd=0x07; //Configurando los pulsadores como entradas en el puerto D
trisc=0xc0; //Config el puerto C como salida
//los pines configurado como salida para que resivan los pulsos
portc.f0=0;
portc.f1=0;
portc.f2=0;
portc.f3=0;
portc.f4=0;
portc.f5=0;
x1:
estado=portc; //config los pines de salida en uno sola variable llamad "ESTADO"
if(portd.f0==1&&estado==0) //Pulsador de arranque directo - Start
{
while(portd.f0==1);
{
delay_ms(25); //retardo
lcd_cmd(lcd_clear);
lcd_out(1,5,"GIRO!");
lcd_out(2,3,"SINCRONO!");
}
portc.f3=1;
portc.f4=1;
portc.f5=1;
}
if(portd.f1==1&&estado==0) //Pulsador de inversion giro
{
while(portd.f1==1);
{
delay_ms(25); //retardo
lcd_cmd(lcd_clear);
lcd_out(1,5,"!GIRO!");
lcd_out(2,3,"ASINCRONO");
}
portc.f0=1;
portc.f1=1;
portc.f2=1;
}
if(portd.f2==1) //Pulsador stop
{
while(portd.f2==1);
{
delay_ms(25); //retardo
lcd_cmd(lcd_clear);
lcd_out(1,4," !!MOTOR!!");
lcd_out(2,3,"!!STOP!!");
}
portc.f0=0;
portc.f1=0;
portc.f2=0;
portc.f3=0;
portc.f4=0;
portc.f5=0;
}
goto x1;
}
Control de Inversión Giro Motor Trifasico - ARDUINO UNO
//ESTA PROGRAMACION ES PARA MOTORES TRIFASICOS
//CONFIGURADO POR LINES L1,L2,L3
void setup() {
//CONFIGURANDO LOS PINES (2,3,4,5,6,7) COMO OUTPUT
for(int k=2;k<=7;k++){
pinMode(k,OUTPUT);
}
//CONFIGURANDO LOS PULSADORES COMO ENTRADA
// PULSADORES EN EL TIPO DE CONECCION DOWN SE ENCUENTRA EN LA IMAGEN DE PROTEUS
pinMode(13,INPUT);
pinMode(12,INPUT);
pinMode(11,INPUT);
}
void loop() {
//PULSADOR (13) START ARRANQUE DIRECTO
//(2,3,4) SE MANTENDRAN EN LOW
if(digitalRead(13)==HIGH&&digitalRead(2)==LOW&&digitalRead(3)==LOW&&digitalRead(4)==LOW){
digitalWrite(5,HIGH);
digitalWrite(6,HIGH);
digitalWrite(7,HIGH);
}
//PULSADOR (12) DE INVERSION DE GIRO
//(5,6,7) SE MANTENDRAN EN LOW
if(digitalRead(12)==HIGH&&digitalRead(5)==LOW&&digitalRead(6)==LOW&&digitalRead(7)==LOW){
digitalWrite(2,HIGH);
digitalWrite(3,HIGH);
digitalWrite(4,HIGH);
}
if(digitalRead(11)==HIGH){ // PULSADOR DE STOP (11)
//CONFIGURADO QUE TODOS LOS PINES ESTEN EN LOW CUANDO EL PULSADOR STOP SE PULSE
digitalWrite(2,LOW);
digitalWrite(3,LOW);
digitalWrite(4,LOW);
digitalWrite(5,LOW);
digitalWrite(6,LOW);
digitalWrite(7,LOW);
}
}
//CONFIGURADO POR LINES L1,L2,L3
void setup() {
//CONFIGURANDO LOS PINES (2,3,4,5,6,7) COMO OUTPUT
for(int k=2;k<=7;k++){
pinMode(k,OUTPUT);
}
//CONFIGURANDO LOS PULSADORES COMO ENTRADA
// PULSADORES EN EL TIPO DE CONECCION DOWN SE ENCUENTRA EN LA IMAGEN DE PROTEUS
pinMode(13,INPUT);
pinMode(12,INPUT);
pinMode(11,INPUT);
}
void loop() {
//PULSADOR (13) START ARRANQUE DIRECTO
//(2,3,4) SE MANTENDRAN EN LOW
if(digitalRead(13)==HIGH&&digitalRead(2)==LOW&&digitalRead(3)==LOW&&digitalRead(4)==LOW){
digitalWrite(5,HIGH);
digitalWrite(6,HIGH);
digitalWrite(7,HIGH);
}
//PULSADOR (12) DE INVERSION DE GIRO
//(5,6,7) SE MANTENDRAN EN LOW
if(digitalRead(12)==HIGH&&digitalRead(5)==LOW&&digitalRead(6)==LOW&&digitalRead(7)==LOW){
digitalWrite(2,HIGH);
digitalWrite(3,HIGH);
digitalWrite(4,HIGH);
}
if(digitalRead(11)==HIGH){ // PULSADOR DE STOP (11)
//CONFIGURADO QUE TODOS LOS PINES ESTEN EN LOW CUANDO EL PULSADOR STOP SE PULSE
digitalWrite(2,LOW);
digitalWrite(3,LOW);
digitalWrite(4,LOW);
digitalWrite(5,LOW);
digitalWrite(6,LOW);
digitalWrite(7,LOW);
}
}
Suscribirse a:
Entradas (Atom)