Hardware components | ||||||
![]() |
| × | 1 | |||
| × | 1 | ||||
Software apps and online services | ||||||
![]() |
| |||||
Hand tools and fabrication machines | ||||||
![]() |
| |||||
|
Design a low-cost device to accurately and repeatedly deliver small volumes or to slowly deliver larger volumes. The pump can provide liquid rewards in operant behavioral experiments and applications of biosensors capable of holding 1 to 5 ml syringes.
// Controle de Motor de Passo com Potenciometro
// Blog Eletrogate - https://blog.eletrogate.com/guia-completo-do-motor-de-passo-28byj-48-driver-uln2003
// Baseado em http://www.airspayce.com/mikem/arduino/AccelStepper/ProportionalControl_8pde-example.html
// Motor 28BYJ48/5V com Modulo ULN20023 - Arduino UNO / IDE 1.8.5
// Uma volta no eixo = 4075 pulsos
// Gustavo Murta 02/jago/2018
#include <AccelStepper.h> // biblioteca AccelStepper
#include <Chrono.h>
#define ANALOG_PIN A0 // pino A0 para leitura da tenso do Potenciometro
AccelStepper motorPasso (AccelStepper::FULL4WIRE, 8, 10, 9, 11); // Passo completo 4 fios
void setup()
{
Serial.begin(9600);
motorPasso.setMaxSpeed(500); // maxima velocidade = 500 pulsos por segundo
}
void loop()
{
// int analog_in = analogRead(ANALOG_PIN); // lendo a tenso do pino A0 do Arduino
// Positive: Withdraw
// Negative: Infuse
// Approx. 5172 steps to fill the 1mL of syringe then same to infuse all
Serial.print("Time: ");
motorPasso.moveTo(-5172); // gira o eixo do motor X pulsos (0 a 1023 pulsos)
motorPasso.setSpeed(10); // velocidade = 100 pulsos por segundo
motorPasso.runSpeedToPosition(); // gira o eixo para a posio definida
// motorPasso.moveTo(-2038); // gira o eixo do motor X pulsos (0 a 1023 pulsos)
// motorPasso.setSpeed(100);
// motorPasso.runSpeedToPosition();
}
Comments