Levitação Magnética Repulsiva com Arduino: Circuito Simples e Guia DIY
Componentes e materiais
![]() |
Arduino UNO | × | 1 |
![]() |
Resistor 1k ohm | × | 1 |
| Transistor BD241 | × | 1 | |
| Sensor de efeito Hall linear UGN3503 | × | 1 | |
![]() |
Solenoide RobotGeek Médio | × | 1 |
| Ímã de alto-falante grande (torus) | × | 1 |
Ferramentas necessárias
![]() |
Ferro de solda (genérico) |
Aplicativos e serviços online
![]() |
Arduino IDE |
Sobre este projeto
Há alguns anos, tentei fazer um dispositivo de levitação magnética repulsiva, mas todos os circuitos que tinha eram complexos e o ajuste era muito difícil.
Após várias tentativas malsucedidas e semi-bem-sucedidas, comprei o levitador que você vê na imagem, mas é quase impossível fazê-lo em casa (DIY).

Agora apresento um levitador repulsivo que, além da placa Arduino, contém apenas alguns componentes adicionais e é muito fácil para DIY:
- Qualquer transistor de média potência: no meu caso BD241
- Diodo universal 1N4001
- Resistor 1 kΩ
- Sensor de efeito Hall UGN3503 (pode usar qualquer sensor Hall 5V RATIOMÉTRICO)
- Ímã toroidal de alto-falante antigo (diâmetro de 9cm a 11cm ou mais)
- Em vez do grande ímã toroidal, pode-se usar grupos de pequenos ímãs de neodímio dispostos como hexágono regular, como em dispositivos comerciais
- Solenoide com cerca de 200 espiras de fio de cobre esmaltado 30AWG. Neste caso, usei um solenoide retirado de gaveta de caixa registradora antiga
O circuito é muito simples e apresentado na imagem abaixo. O Arduino é alimentado por padrão com 5V e o solenoide via transistor com 12V-20V. Ambos têm terra comum. A polaridade dos ímãs e do solenoide é mostrada na figura. Para ajuste, você precisará de um pouco de paciência e tempo, e na verdade há prazer em fazer o dispositivo. O sensor Hall deve ficar no topo, acima do solenoide. Acima dele é colocado o ímã que deve flutuar. No meu caso, o ajuste foi mover o ímã toroidal para cima e para baixo. Além do hardware, há também um ajuste no código alterando o valor da primeira linha, que pode variar de 200 a 350. Com a combinação desses dois ajustes, obtemos os melhores resultados.
Código
Arquivo sem título
int set_point = 250; // configuração
int sensorPin = A1;
int output_pin = 2;
int sensorValue = 0;
void setup() {
Serial.begin(9600);
pinMode(output_pin, OUTPUT);
}
void loop() {
sensorValue = analogRead(sensorPin);
// Serial.println(sensorValue);
if (sensorValue <= set_point)
digitalWrite(output_pin, LOW);
else
digitalWrite(output_pin, HIGH);
}
Esquemáticos
Processo de manufatura
- Dados Digital com Arduino: Gere Números Aleatórios 1-6 em LCD 16x2
- Sistema Multi-Posição de Sensores de Temperatura para Integração em Casa Inteligente
- Controle USB para Jogos DIY com Arduino – Construa Seu Próprio Gamepad de Alto Desempenho
- MotionSense: Detecção Inteligente de Intrusão com Arduino e ESP8266
- Prevenção de Incêndio em Impressoras 3D: Sistema de Segurança com Sensor Inteligente
- Pixel Chaser: Jogo LED Interativo de Um Toque com Arduino Nano
- Crie um Medidor IoT Web com Arduino, Yaler e IFTTT
- Registrador de Dados de Balão Meteorológico Arduino de Alto Desempenho
- Relógio Flip Arduino com Matriz LED 8×8 – Projeto DIY de Relógio em Tempo Real
- CoroFence Detector Térmico: Sensor PIR Avançado & Integração IoT



