Coin Farm ( Busco afiliados para jugar)

Mostrando entradas con la etiqueta Arduino. Mostrar todas las entradas
Mostrando entradas con la etiqueta Arduino. Mostrar todas las entradas

domingo, 31 de mayo de 2020

CURSO FREECAD 2020 para imprimir en 3D

CURSO FREECAD 2020 para imprimir en 3D


Bien muchachos ante la cantidad de visitas me dieron ganas de continuar con este viejo proyecto y contarles los adelantos que tuve, mas así hacer videos de como fui construyendo diferentes proyectos como el ultimo un respirador que se puede imprimir en 3d cuyos stl van a estar a disposición gratuita en mi canal de Cult's.Este kit pedagógico cuya intención es enseñar sistemas con arduino y aprovechar las impresoras 3D.

Antes de comenzar hacer un poco de historia de mis primeros ensayos.

y comencé con un curso Freecad 01 que pueden hacer los primeros pasos aca en este link

o pueden ver el video.



 La idea de explicarles como diseñe el respirador paso a paso y los ensayos.






                                                 y acá le muestro como funciona.

 Los invito a ver mas cosas del blog

lunes, 9 de mayo de 2016

Timbre automatico

Para los interesados en el timbre automático que estoy haciendo les dejo el código para la placa Arduino Uno (lo probe con la Mega y la Nano).Por el pin 13 comando una placa Relay.
Para ver su funcionamiento hago un reporte serial
Por cualquier información pueden escribirme a olafvgb61@gmail.com

/******************************************************************
* Autor  : Olaf Albrecht                                          *
* Release             : 2.0                                       *
* Soft.Date           : 20 junio, 2015                            *
* Fecha Nuevo Release : 13 mayo , 2016                            *
* Comments            : Compara con el reloj la hora y minutos    *
*                       y activa un Relay para disparar un timbre *
*                                                                 *
* Hardware Used    : - Arduino Uno R-3 module                     *
*                    - Display LCD Arduino Compatible (LCD 16x2)  *
*                    - Display (Hitachi HD44780 driver).          *
*                    - RTC Reloj base de tiempo                   *
*******************************************************************
*/
#include <Wire.h>
#include <LiquidCrystal.h>
#include "RTClib.h"
RTC_DS1307 RTC;
LiquidCrystal lcd(8, 7, 12, 11, 10,9);
int dia;
int seg;
int HORMIL;
int thisvecR;

int contrecreo[]={755,800,840,920,930,935,1010,1050,1100,1140,1220,1300,1335,1340,1455,1500,1540};
//int contrecreo[]={1905,1908,1910,1912,1915,1930,1920,1935,1940,1945,1950,1955,2000,2005,2010,2015,2020};
int cnttiporecreo[]={
  1,3,1,1,2,3,1,1,3,1,1,1,2,2,1,2,1};
// 1  R corto - 2 R largo - 3  R L&Repet
int cntvec1=17;


void setup () {
  Wire.begin(); // Inicio el puerto I2C
  RTC.begin(); // Inicio la comunicación con el RTC
  //RTC.adjust(DateTime(2016,4,4,11,49,00)); // Establece la fecha y hora (Comentar una vez establecida la hora)
  Serial.begin(9600); // Establece la velocidad de datos del puerto serie
  lcd.begin(16, 2);
  lcd.setCursor(0,0);
  lcd.print("Timbre IPEA 238");
  pinMode(13, OUTPUT);
}

void loop(){
  ////*
  DateTime now = RTC.now(); // Obtiene la fecha y hora del RTC



  delay(1000); // La información se actualiza cada 1 seg.
  HORMIL=100*(now.hour())+ now.minute();

  seg=now.second();
  dia=now.dayOfWeek();
//  Serial.println();
// Serial.print(now.second(), DEC);
  // Esta rutina detecta la hora y acomoda el recreo
   if(thisvecR=0)
   {
   for (int thatvecR = 0; thatvecR < cntvec1; thatvecR++)
   {
   if(HORMIL==contrecreo[thatvecR])
   {
   thisvecR=thatvecR;
 
   }
   }
   }

  // Lee el vector secuencia horarios timbre
  if(dia>0 && dia<6){
    lcd.setCursor(0,1);
  lcd.print(now.day(), DEC); // Dia
  lcd.print('/');
  lcd.print(now.month(), DEC); // Mes
  lcd.print('/');
  lcd.print(now.year(), DEC); // Año
  lcd.print(' ');
  if (now.hour() < 10){
      lcd.print("0");
  }
  lcd.print(now.hour(), DEC); // Horas
  lcd.print(':');
  if (now.minute() < 10){
      lcd.print("0");
  }
  lcd.print(now.minute(), DEC); // Minutos
 
 //  COMPARO RELOJ CON EL VECTOR
  for (thisvecR = 0; thisvecR < cntvec1; thisvecR++)
  {
    if(HORMIL==contrecreo[thisvecR] && seg<10)
    {

      switch (cnttiporecreo[thisvecR])
      {
      case 1:
        Serial.println("Timbre Corto ");
        timbre_corto();

        break;
      case 2:
        Serial.println("Timbre Largo");
        timbre_largo();

        break;
      case 3:
        Serial.println("Timbre con Repeticion");
        timbre_corto();
        timbre_largo();

        break;
      }

      if(thisvecR == cntvec1)   // REPORTE SERIAL
      {
        thisvecR = 0;
      }
      Serial.print(now.year(), DEC); // Año
      Serial.print('/');
      Serial.print(now.month(), DEC); // Mes
      Serial.print('/');
      Serial.print(now.day(), DEC); // Dia
      Serial.print(' ');
      Serial.print(now.hour(), DEC); // Horas
      Serial.print(':');
      Serial.print(now.minute(), DEC); // Minutos
      Serial.print(':');
      Serial.print(now.second(), DEC); // Segundos
      Serial.print("  DS:");
      Serial.print(now.dayOfWeek(), DEC);
      Serial.print("  HM:");
      Serial.print(HORMIL);
      Serial.print(" contrecreo:");
      Serial.print(contrecreo[thisvecR]);
      Serial.print("  cntvec1:");
      Serial.print(thisvecR);
      Serial.println();
      Serial.print("-------------------------------------------------------------");
      Serial.println();
    }
  }    
   }
 else
 {
 lcd.setCursor(0,0);
 lcd.scrollDisplayLeft();
 lcd.print("DESCONECTADO F/S");
 lcd.setCursor(0,1);
 lcd.print("Olaf Tc:15406600");
 digitalWrite(13, LOW);
 delay(150);
 }
}
int timbre_corto()
{

  digitalWrite(13, HIGH);
  delay(2000);
  digitalWrite(13, LOW);
  delay(4000);

}
int timbre_largo()
{

  digitalWrite(13, HIGH);
  delay(4000);
  digitalWrite(13, LOW);
  delay(2000);

}
// funcion reporte serial a PC





jueves, 28 de enero de 2016

Potencia PAP CNC II

Mas Trabajo en el Taller nuevo (por lo ordenado)

Segunda version del Control para controlar 3 motores paso a paso con TB6560 de toshiba (ejes X,Y,Z).

Estos funcionan con el puerto paralelo de una PC con Linux CNC.

Para ver el funcionamiento del mismo se me ocurrio hacer un tester con un arduino uno como control disparador pera los tres ejes usando un Lcdshield que tiene un teclado.










Aqui les paso el codigo IDE para la Placa Arduino Uno que utilice

// TesterCNC Output de 1 a 6 y estas se ajustan a la entrada de la placa TB6560AHQ
#include <LiquidCrystal.h>
LiquidCrystal lcd(8, 9, 4, 5, 6, 7);

int lcd_key =0;
int adc_key_in =0;
int temp=0;

#define btnRIGHT    0
#define btnUP          1
#define btnDOWN    2
#define btnLEFT      3
#define btnSELECT  4
#define btnNONE     5

int read_LCD_buttons();

int read_LCD_buttons()//Estaesunfunciongenerdapracomandrlosbotones

  {
   adc_key_in = analogRead(0);
  if (adc_key_in>900)   return btnNONE;
  if(adc_key_in<50)      return btnRIGHT;
  if(adc_key_in<250)    return btnUP;
  if(adc_key_in<450)    return btnDOWN;
  if(adc_key_in<650)    return btnLEFT;
  if(adc_key_in<850)    return btnSELECT;
  return btnNONE;

  }

void setup()

{



 

  lcd.begin(16, 2);

  lcd.setCursor(0,0);

  lcd.print("Probador CNC");

  pinMode(6,OUTPUT);  // eje z

  pinMode(5,OUTPUT);

  pinMode(4,OUTPUT);  // eje y

  pinMode(3,OUTPUT);

  pinMode(2,OUTPUT);  //eje x

  pinMode(1,OUTPUT);



}



void loop()

{
     
             lcd.setCursor(0,0);
              lcd.print("Mueve eje :");
              lcd.setCursor(0,1);
              lcd_key=read_LCD_buttons();

 

                  if (lcd_key == btnRIGHT)

                          {

                          lcd.print("X Derecha");

                          digitalWrite(1, HIGH);

                          pulso();

                          digitalWrite(1, LOW);

                          }

                  if (lcd_key == btnLEFT)

                          {

                          lcd.print("X Isquierda");

                          digitalWrite(2, HIGH);

                          pulso();

                          digitalWrite(2, LOW);

                          }

                  if (lcd_key == btnUP)

                          {

                          lcd.print("Y Derecha ");

                          digitalWrite(3, HIGH);

                          pulso();

                          digitalWrite(3, LOW);

                          }

               

                  if (lcd_key == btnDOWN)

                          {

                          lcd.print("Y Izquierda ");

                          digitalWrite(4, HIGH);

                          pulso();

                          digitalWrite(4, LOW);

                          }

                  if (lcd_key == btnSELECT)

                          {

                          lcd.print("Subir Z");

                          digitalWrite(5, HIGH);

                          pulso();

                          digitalWrite(5, LOW);

                          }      

                  if (lcd_key == btnNONE)

                          {                    

                          lcd.clear();

                          digitalWrite(6, LOW);// apago salidas



                          pulso();

                          }

                          digitalWrite(1, HIGH);

                          pulso();

                          digitalWrite(1, LOW);      

                     

}

int pulso()//funcioncontroldepulso

{

  delay(50);



}

jueves, 14 de enero de 2016

Mecatronica VGB y Arduino LCD Keypad shield

Probando Con Arduino UNO y el Modulo LCD Keypad Shield y con una codificacion de prueba usando el IDE de arduino.
Les cuento que estoy usando linux lubuntu y este video esta hecho con Guvcvideo y realmente quede satisfecho por la compra y los resultados.




Para compartir les paso el codigo que esta para hacer modificaciones e ir estudiando


#include <LiquidCrystal.h>

LiquidCrystal lcd(8, 9, 4, 5, 6, 7);

int lcd_key =0;
int adc_key_in =0;
int temp=0;

#define btnRIGHT    0
#define btnUP          1
#define btnDOWN    2
#define btnLEFT      3
#define btnSELECT  4
#define btnNONE     5

int read_LCD_buttons();

int read_LCD_buttons()
  { adc_key_in = analogRead(0);
  if (adc_key_in>900)   return btnNONE;
  if(adc_key_in<50)      return btnRIGHT;
  if(adc_key_in<250)    return btnUP;
  if(adc_key_in<450)    return btnDOWN;
  if(adc_key_in<650)    return btnLEFT;
  if(adc_key_in<850)    return btnSELECT;
  
  return btnNONE;
  }
  
void setup() 
{
   
  lcd.begin(16, 2);
  lcd.setCursor(0,0);
  lcd.print("MECATRONICA VGB");
}

void loop()
{
  temp=(millis()/1000);
    
    
    //lcd.print(millis()/1000);
    if(temp<10)
            {
              lcd.setCursor(0, 1);
              lcd.print("Esp 1 min");
              lcd.setCursor(10, 1);
              lcd.print(temp);
              lcd.setCursor(13, 1);
              lcd.print("seg");
            }
            else
            {
              
              lcd.setCursor(0, 0);
              lcd.print("Probar Teclado ");
             
              lcd.setCursor(5,1);
              
              lcd_key=read_LCD_buttons();
   
                  if (lcd_key == btnRIGHT)
                          lcd.print("1");
                  if (lcd_key == btnLEFT)
                          lcd.print("2");
                  if (lcd_key == btnUP)
                          lcd.print("3");
                  if (lcd_key == btnSELECT)
                          lcd.print("Se");
                  if (lcd_key == btnDOWN)
                          lcd.print("4");
                  if (lcd_key == btnNONE)
                      {
                          lcd.print(" Esperando datos ");
                          //lcd.clear();
                          for ( int positionCounter =0; positionCounter <13; positionCounter ++)
                              {
                               lcd.scrollDisplayLeft();
                               delay(500);
                               }
                      }
                      else
                      {
                         lcd.setCursor(0,1);
                         lcd.print("Prog:");
                      }
            }
    
    

}

Saludos para las pesonas que ven este blog

 Como mañana es mi cumpleaños 63 y quería compartirles con orgullo que pertenezco a esa clase de personas que tuvimos que actualizarnos ant...