miércoles, 27 de noviembre de 2019

Cómo Probar Motores Paso a Paso con Arduino y sin Ariduino (con 555)


Código Fuente:

const int dirPin = 8;
const int stepPin = 9;
 
unsigned long pasosvuelta;
float grados;
unsigned long rpms;
unsigned long pasos;
unsigned long retardo;
String mensaje = "";  

//-----------------SETUP------------------------------ 
void setup() {
   pinMode(dirPin, OUTPUT);   //coloco el Pin de Dirección como salida
   pinMode(stepPin, OUTPUT);  //coloco el Pin de Step como salida
   Serial.begin(115200);      //inicio la comunicación serial a 115200 baud
   pasosporvuelta();          //llamo a la función para definir los pasos por vuelta.
}

//-----------------LOOP------------------------------ 
void loop() {
  sentido();    //llamo a la función para definir el sentido de giro.
  giro();       //llamo a la función para definir los grados que debe girar el motor.
  velocidad();  //llamo a la función para definir la velocidad de giro en RPM.
   
  pasos = (grados/360)*pasosvuelta;       //calculo la cantidad de pasos que tengo que enviar. 
  Serial.print(pasos);
  Serial.print(" pasos a ");
  retardo = 30000000/(rpms*pasosvuelta);  //calculo el retardo según las RPM indicadas.
  Serial.print(retardo);
  Serial.print(" uSeg\n");
  Serial.println("---------------------------------------");
   
  for (int x = 0; x < pasos; x++) {      //envio los pasos calculados con el retardo calculado
    digitalWrite(stepPin, HIGH);
    delayMicroseconds(retardo);
    digitalWrite(stepPin, LOW);
    delayMicroseconds(retardo);
  }
}

//-----------------FUNCIONES-------------------------- 
void pasosporvuelta() {          
  Serial.print("¿Pasos por vuelta? (pasos del motor * micropasos) ");
  while (Serial.available() == 0 ) {} //queda esperando hasta recibir un mensaje
  mensaje = Serial.readString();
  pasosvuelta = mensaje.toInt();      //convierte en mensaje recibido en un entero
  if (pasosvuelta == 0) {             //si no es un número envía ERROR y vuelve a llamar a la función
    Serial.print("ERROR\n");
    pasosporvuelta();
  }
  else {                              //si es un número nos envia un mensaje de OK
    Serial.print(pasosvuelta);
    Serial.print(" OK\n");
  }
}

void sentido() {
  Serial.print("¿Sentido de giro? (0 horario / 1 antihorario) ");
  while (Serial.available() == 0 ) {}
  mensaje = Serial.readString();
  if (mensaje == "0\n") {
    Serial.print("horario OK\n");
    digitalWrite(dirPin, HIGH);
  }
  else if (mensaje == "1\n") {
    Serial.print("antihorario OK\n");
    digitalWrite(dirPin, LOW);       
  }
  else {
    Serial.print("ERROR\n");
    sentido();     
  }
}

void giro() {
  Serial.print("¿Grados? ");
  while (Serial.available() == 0 ) {}
  mensaje = Serial.readString();
  grados = mensaje.toFloat();
  if (pasosvuelta == 0) {
    Serial.print("ERROR\n");
    giro();
  }
  else {
    Serial.print(grados);
    Serial.print(" OK\n");
  }
}

void velocidad() {
  Serial.print("¿Velocidad de giro? (RPM) ");
  while (Serial.available() == 0 ) {}
  mensaje = Serial.readString();
  rpms = mensaje.toInt();
  if (rpms == 0) {
    Serial.print("ERROR\n");
    velocidad();
  }
  else {
    Serial.print(rpms);
    Serial.print(" OK\n");
  }
}




domingo, 25 de agosto de 2019

domingo, 14 de julio de 2019

Computadora Didáctica SinapTec - Parte 2 - Diseñando las PCBs


En el video les cuento como fue el proceso de diseño de las PCBs, doy algunos tips sobre Eagle, explico cómo generar los archivos gerbers correctamente y cámo realizar un pedido a PCBWay.


PCBway.es

PCBWay2Capas.cam

sábado, 8 de junio de 2019

Computadora Didáctica SinapTec - Parte 1

Este es un video de presentación de un proyecto en el que estoy trabajando hace varios meses, que decidí llamar “Computadora Didáctica SinapTec”. Si trata del diseño, simulación y construcción de una computadora de 8bits sin microprocesador (TTL Computer). Basada íntegramente en sencillos circuitos integrados de la familia 7400. la idea de proyecto es poder explicar en forma práctica cómo llegar desde simples transistores hasta un lenguaje de alto nivel. Pasando por todos los niveles de abstracción, tanto del hardware como del software.
Explicar como con transistores se construyen compuertas lógicas, y como estas compuertas lógicas se agrupan dando lugar a la lógica combinacional y secuencial. Luego usar estos elementos mas complejos como registros, multiplexores, contadores, etc; para dar forma a las partes que hacen a un procesador, como la ALU (unidad aritmética y lógica), la unidad de control, el contador de programa, los distintos registros, etc. Y finalmente agregar un puerto de entrada y otro de salida para poder interactuar con la computadora y de esta manera tener una plataforma de hardware completa.
La idea también es hacer un camino similar con el software, partir del lenguaje máquina, pasando por el lenguaje ensamblador y varios niveles de abstracción mas hasta llegar a un lenguaje de alto nivel.


Ordená tus circuitos impresos en: https://www.pcbway.es
PCBWay 5th Annivesary: https://www.pcbway.com/anniversary5sales.html

viernes, 19 de abril de 2019

Cómo Fabricar Tu Propia Controladora De Impresora 3D – Parte 5

En esté capitulo les muestro el código de un host que programé en Python hace unos años para explicar cómo se comunica la placa SinapTec AT328.02 con el host.






30% de descuento para PCB avanzados y fabricación dentro de las 24 horas en PCBWay:

Acá podés obtener el diseño de mis placas:

sábado, 13 de abril de 2019

Cómo Fabricar Tu Propia Controladora De Impresora 3D – Parte 4

En esté capitulo explico cómo funciona la parte electrónica de la placa de la placa y conecto el resto de los componentes para simular el funcionamiento de la misma.
https://www.pronterface.com



30% de descuento para PCB avanzados y fabricación dentro de las 24 horas en PCBWay:

Acá podés obtener el diseño de mis placas:

lunes, 8 de abril de 2019

Cómo Fabricar Tu Propia Controladora De Impresora 3D – Parte 3

En este video explico como ser carga el firmware TeaCup en nuestra placa SinapTec AT328.02 y además explico cómo regular la corriente de los driver que controlan los motores paso a paso.



Les presento un servicio de PCBWay que permite compartir las placas en forma muy simple. Además, se le puede agregar fotos, videos y toda la documentación necesaria para realizar el proyecto. Haciendo click en “Add to cart” podés encargar tus placas.


Acá podés obtener el diseño de mis placas:

30% de descuento para PCB avanzados y fabricación dentro de las 24 horas en PCBWay: https://www.pcbway.es

martes, 19 de marzo de 2019

Cómo Fabricar Tu Propia Controladora De Impresora 3D – Parte 2

Este video es un time-lapse del montaje de lo componentes y también doy una serie de tips para el correcto armado de una placa controladora de impresora 3D SinapTec AT328.02.




La calidad del plateado de las vías hizo que sea muy fácil soldar los componentes.


Encargá tus PCBs en PCBWay.es. Descargá los archivos gerber RS-274-X aquí.

domingo, 10 de marzo de 2019

Cómo Fabricar Tu Propia Controladora De Impresora 3D – Parte 1

Mandé a fabricar 10 placas a una empresa china llamada PCBWay, me las mandaron por FedEx y tardaron unos 10 días desde que hice el pedido hasta que las entregaron en la puerta de mi oficina.
La calidad de las placas es excelente en todo sentido, tanto de las pistas, como la serigrafía, la malla antisoldante, el plateado de las vías, las perforaciones y los bordes.





Les paso a detallar como hacer un pedido en PCBWay.

1) Loguearse. Usar datos verdaderos ya que los mismos luego se utilizarán para el envío

2) Cotización en línea (10 placas de 1 o 2 capas de 100x100mm a 5 u$s + envío)


3) Subir archivos Gerber RS-274-X (ACÁ LOS GERBER DE LA SinapTec AT328.02) y enviar el pedido


4) Una vez enviado el pedido una persona se encargará de verificarlo, si todo está bien ya podés pagarlo y cargar los datos de envío.


https://reprap.org/wiki/SinapTec_AT328.02/es