Circuito desligando após um tempo de uso

Olá,

Estou montando um projeto para uma máquina que fabrica filamento 3D através de garrafa PET.

Até o momento o circuito se encontra da seguinte forma:

O circuito ainda não está finalizado, pois desse modo ele apenas liga/desliga o motor, informa o estado no display e informa também o RPM. Porém, ainda será colocado no circuito um controle de temperatura para o bico da impressora através de PID, sensores indutivos para controlar o real RPM e o status do processo de fabricação do filamento e um módulo para conexão com smartphone para funcionar como um supervisório.
Entretanto, com esse circuito já estou com problemas. Consigo ligar o circuito e colocar para funcionar normalmente, mas conforme eu aumento o RPM do motor, o circuito começa a perder força até que desliga tudo (display e motor). Já testei alimentando o circuito apenas com o arduino, tentei alimentando apenas com uma fonte externa de 5V e também tentei com ambos. Porém, em todos os casos acontece o mesmo problema.

Alguém saberia me dizer o que pode estar errado?

Vou deixar o código utilizado até o momento abaixo:

#include <Wire.h>
#include <LiquidCrystal_I2C.h>

LiquidCrystal_I2C lcd(32,16,2);

int valor=0;
int botao = 9;
int sensor = 8;
int tip = 10;
int estadoBotao = 0;

void setup(){
	pinMode(botao, INPUT);
	pinMode(sensor, INPUT);
	pinMode(tip, OUTPUT);
	lcd.begin(16,2);
	lcd.init();
	lcd.backlight();
}

void loop(){
	estadoBotao = digitalRead(botao);
	if(estadoBotao == LOW){
		analogWrite(tip,0);
		lcd.setCursor(0,0);
		lcd.print("EXTRUSORA");
		lcd.setCursor(0,1);
		lcd.print("DESLIGADA");
		delay(1000);
	}
	else{
		lcd.clear();
		lcd.print("EXTRUSORA");
		lcd.setCursor(0,1);
		lcd.print("LIGADA");
		valor=map(analogRead(A3),0,1023,0,255);
		Serial.print("Valor lido=");
		Serial.println(valor);
		delay(1000);
		analogWrite(tip,valor);
		lcd.clear();
		lcd.setCursor(0,0);
		lcd.print("ROTACAO:");
		lcd.setCursor(0,1);
		lcd.print(valor);
		lcd.print("rpm");
		delay(5000);
	}
	if(digitalRead(sensor) == HIGH){
		analogWrite(tip,0);
		estadoBotao = 0;
	}
}

Arduino não é fonte de alimentação.
Ele pode fornecer alguns mAs, mas pouco, por volta de no máximo 500mA.
Use uma fonte externa para alimentar o seu motor.

This topic was automatically closed 180 days after the last reply. New replies are no longer allowed.