Manufactura industrial
Internet industrial de las cosas | Materiales industriales | Mantenimiento y reparación de equipos | Programación industrial |
home  MfgRobots >> Manufactura industrial >  >> Manufacturing Technology >> Proceso de manufactura

Levitación magnética con Arduino Nano: guía de piezas y cableado

Componentes y suministros

Aplicaciones y servicios en línea

Sobre este proyecto

Levitador magnético con Arduino. Puedes imprimir el cuerpo en 3D o no.

Modelos 3D en Thingiverse:

Atención:

Código

Levitator.ino (versión simple, sin PID)

//=========================================================|
// Ekobots Innovation Ltda - www.ekobots.com.br |
// Juan Sirgado y Antico - www.jsya.com.br |
//---------------------------------------------------------|
// Program Magnetic Levitator - 2016/02/06 |
// All rights reserved 2016 |
//=========================================================|
int anaPin = 1;   // Pin analógico A1 (Hall)
int digPin = 5;   // Pin digital 5 (electroimán)
int subPin = 7;   // Pin digital 7 (bajar punto levitación)
int addPin = 8;   // Pin digital 8 (subir punto levitación)
int anaVal = 0;
boolean digVal = 0;
int levVal = 228; // Punto de levitación
int dlyVal = 250; // Delay µs

void setup() {
  Serial.begin(57600);
  Serial.println("Levitator by JSyA");
  Serial.println("Starting...");
  pinMode(digPin, OUTPUT);
  pinMode(subPin, INPUT_PULLUP);
  pinMode(addPin, INPUT_PULLUP);
  Serial.println("Started.");
}

void loop() {
  anaVal = analogRead(anaPin);
  if (digitalRead(addPin) == LOW) { levVal++; value_log(); delay(250); }
  if (digitalRead(subPin) == LOW) { levVal--; value_log(); delay(250); }
  if (anaVal < levVal) digVal = LOW;
  else digVal = HIGH;
  digitalWrite(digPin, digVal);
  delayMicroseconds(dlyVal);
}

void value_log() {
  Serial.print("anaVal=["); Serial.print(anaVal); Serial.print("]-");
  Serial.print("digVal=["); Serial.print(digVal); Serial.print("]-");
  Serial.print("levVal=["); Serial.print(levVal); Serial.println("];");
}

Levitator_PID.ino (versión con control PID)

//=========================================================|
// Ekobots Innovation Ltda - www.ekobots.com.br |
// Juan Sirgado y Antico - www.jsya.com.br |
//---------------------------------------------------------|
// Program Magnetic Levitator PID - 2016/10/06 |
// All rights reserved 2016 |
//=========================================================|
int anaPin = 1, digPin = 5, subPin = 7, addPin = 8;
int anaVal = 0, digVal = 0, levVal = 262, dlyVal = 10;
float timVal = 0;
// PID
float setpoint = 0, measured_value = 0, output = 0;
float integral = 0, derivative = 0, error = 0, previous_error = 0;
float dt = 0.1, Kp = 1.0, Ki = 0.1, Kd = 0.01;

void setup() {
  Serial.begin(57600);
  Serial.println("Levitator by JSyA"); Serial.println("Starting...");
  pinMode(digPin, OUTPUT);
  pinMode(addPin, INPUT_PULLUP);
  pinMode(subPin, INPUT_PULLUP);
  setpoint = levVal;
  Serial.println("Started.");
}

void loop() {
  anaVal = analogRead(anaPin);
  measured_value = anaVal;
  error = setpoint - measured_value;
  integral += error * dt;
  derivative = (error - previous_error) / dt;
  output = (-Kp * error) + (-Ki * integral) + (-Kd * derivative);
  previous_error = error;
  digVal += output;
  if (digVal < 0) digVal = 0;
  if (digVal > 255) digVal = 255;
  analogWrite(digPin, digVal);
  if (digitalRead(addPin) == LOW) { setpoint++; value_log(); delay(250); }
  if (digitalRead(subPin) == LOW) { setpoint--; value_log(); delay(250); }
  delayMicroseconds(dlyVal);
}

void value_log() {
  Serial.print("anaVal=["); Serial.print(anaVal); Serial.print("]-");
  Serial.print("digVal=["); Serial.print(digVal); Serial.print("]-");
  Serial.print("setpoint=["); Serial.print(setpoint); Serial.println("];");
}

Esquemáticos

Diagrama Fritzing de conexiones.

Proceso de manufactura

  1. Construye un reloj Numitron retro con Arduino: Simple, fiable y eficiente energéticamente
  2. Sensor K30 CO₂: Monitorización en tiempo real de la calidad del aire interior
  3. Facilitar la comunicación sordo‑ciego usando 1Sheeld y Arduino
  4. Alcancía Inteligente: Controla un Aceptador de Monedas con Arduino Nano
  5. Controla un LED por Bluetooth con Arduino – Guía DIY paso a paso
  6. Integración del sensor de huella capacitivo DFRobot (ID809) con Arduino o ESP8266
  7. Proyecto HMI Interactivo con Nextion, Arduino Mega y Múltiples Sensores
  8. Brazo Robótico de 6 Grados de Libertad Controlado por Nunchuk con Arduino
  9. Levitación magnética repulsiva con Arduino: Circuito simple y guía DIY
  10. Medición Precisa de Radiación Solar con Arduino UNO y Shield Ethernet
  11. Sistema Radar Compacto con Arduino Nano, Sensor HC-SR04 y Pantalla 1.8"