Calificación:
  • 0 voto(s) - 0 Media
  • 1
  • 2
  • 3
  • 4
  • 5
contador bolas airsoft
#1
hola soy nuevo en este foro un saludo a todos
estoy haciendo un proyecto de pesar,clasificar y contar bolas de airsoft
os muestro el codigo

Código:
#include <HX711.h>
#include <SPI.h>
#include <Wire.h>
#include <MultiLCD.h>
float cal1;
float cal2;
LCD_ILI9341 lcd;
HX711 scale(A1, A0);    

void setup()
{
  lcd.begin();
  scale.set_gain(128);
  scale.tare();
  scale.set_scale(40140.00);                    

  
  lcd.setCursor(1, 1);
  lcd.print("Gramos:");
  
  
  lcd.setCursor(1, 5);
  lcd.print("Total:");

  lcd.setFont(FONT_SIZE_MEDIUM);
  lcd.setCursor(1, 10);
  lcd.print("Cajon N:");  
}
void loop()
{
  cal1 = scale.get_units(10);
  cal2 = scale.get_units(5);
   if (cal1 < 0){
     cal1 = 0;
  }
  if (cal2 < 0){
     cal2 = 0;
  }
  
  
  lcd.setCursor(75, 1);
  lcd.setFont(FONT_SIZE_MEDIUM);
  lcd.setTextColor(RGB16_YELLOW);
  lcd.print(cal1, 2);  
  
  
  lcd.setCursor(75, 5);
  lcd.setFont(FONT_SIZE_MEDIUM);
  lcd.setTextColor(RGB16_YELLOW);
  lcd.print(cal2, 3);
  
  
lcd.setCursor(75, 10);
lcd.setTextColor(RGB16_YELLOW);

if (cal2 < 0.425 && cal2 > 0.420)   lcd.print(8);
if (cal2 < 0.420 && cal2 > 0.415)   lcd.print(7);
if (cal2 < 0.415 && cal2 > 0.410)   lcd.print(6);
if (cal2 < 0.410 && cal2 > 0.405)   lcd.print(5);
if (cal2 < 0.405 && cal2 > 0.400)   lcd.print(4);
if (cal2 < 0.400 && cal2 > 0.395)   lcd.print(3);
if (cal2 < 0.395 && cal2 > 0.390)   lcd.print(3);
if (cal2 < 0.390 && cal2 > 0.385)   lcd.print(2);
if (cal2 < 0.385 && cal2 > 0.380)   lcd.print(1);
if (cal2 < 0.380 && cal2 > 0.375)   lcd.print(0);

}

a falta de mas elementos en el proyecto necesito poner un contador de cada cajon las bolas que hay
una manita se agradece
un saludo
Citar
#2
Coméntanos un poco más sobre como tienes el montaje, componentes, etc.. así a pelo es un poco difícil.

Para el contador podrías usar un sensor fotoeléctrico.
Citar
#3
bueno el proyecto es en realidad una bascula para pesar y clasificar bolas de airsoft
en un bote de bolas en este caso bbs de 0.40 para sniper
normalmente las bolas las pesamos a mano una por una con una bascula de precision 0.001
la intencion es que al pesar la bola la ponga en el cajon correspondiente ,eso lo hace bien
pero quiero poner un registro de cada cajon las bolas que hay
la pantalla es grande tft de 230x340 y cabe toda la informacion
accualmente estoy imprimiendo el cuerpo y chasis de la bascula con la impresora 3d
Citar
#4
hombre, a las malas, y de forma un poco rudimentaria, podrías poner báscula a los cajones y que haga el cálculo.

Pues ahora mismo no se me ocurre otra idea más que la del fotoeléctrico para usar como contador. A ver si alguno de los pros se pasan.
Citar
#5
Es complicado sin ver una foto de lo que hay actualmente. Como dice jukillo un sensor fotoeléctrico serviría, pero me imagino que lo que quieres es automatizar el proceso de poner la bola en la báscula y después esa misma bola ponerla en el cajón correspondiente, aumentando un contador. Algo como esto:


Citar
#6
exacto es mas o menos lo mismo
mi proyecto pesa la bola ,la etiqueta en una casilla de el rango decrito en los if
lo que necesito es saber cuantas bolas hay en un peso o cajon
es decir en el cajon nº 1 hay 23 bbs en el nº 2hay 64 ...etc
es ese aspecto estoy perdido
gracias
Citar
#7
No se, me parece muy simple lo que te voy a poner, pero a falta de más datos y como no se aún si te refieres a hardware o software:

Código:
int cajones[9];
.
.
memset(cajones, 0, sizeof(cajones));
.
.
if (cal2 < 0.425 && cal2 > 0.420)  
{
lcd.print(8);
cajones[8]++;
}
else if (cal2 < 0.420 && cal2 > 0.415)
{
lcd.print(7);
cajones[7]++;
}
else if (cal2 < 0.415 && cal2 > 0.410)
{
lcd.print(6);
cajones[6]++;
}
else if (cal2 < 0.410 && cal2 > 0.405)
{
lcd.print(5);
cajones[5]++;
}
else if (cal2 < 0.405 && cal2 > 0.400)
{
lcd.print(4);
cajones[4]++;
}
else if (cal2 < 0.400 && cal2 > 0.390)
{
lcd.print(3);
cajones[3]++;
}
else if (cal2 < 0.390 && cal2 > 0.385)
{
lcd.print(2);
cajones[2]++;

}
else if (cal2 < 0.385 && cal2 > 0.380)
{
lcd.print(1);
cajones[1]++;
}
else if (cal2 < 0.380 && cal2 > 0.375)
{
lcd.print(0);
cajones[0]++;
}
Citar
#8
gracias he insertado el codigo
el cajo lo identifica ferfectamente
lo de insertar la impresion de por ejemplo cajones[3]++;
he probado en el void setup
lcd.setCursor(1, 15);
lcd.print(cajones[3]);
no sale el contador
Citar
#9
Pero la ejecución se hace en el loop no en el setup, ya que este sólo se ejecuta una vez.
Citar
#10
lo pruebo
Citar
#11
ok sube el contador 1 pero cuando retiro la bola para poner otra el contador se pone a 0
Citar
#12
Pon el int cajones encima del setup y debajo de los includes. El memset dentro del setup
Citar
#13
ahora si hace el contador pero no para
es decir que pesa la bola la etiqueta y pone el contador a 1 pero sigue suviendo el contador
te grabo un video y lo cuelgo
Citar
#14
https://www.dropbox.com/s/zri1ito1lhaxsc...181842.mp4
Citar
#15
Vale, entonces hay que modificar un par de cosas:
justo debajo de int cajones pones
Código:
boolean pesando;

en el setup pones
Código:
pesando = false;

y luego sustituyes los if por este bloque:

Código:
if(!pesando)
{
if (cal2 < 0.425 && cal2 > 0.420)  
{
  lcd.print(8);
  cajones[8]++;
  pesando = true;
}
else if (cal2 < 0.420 && cal2 > 0.415)
{
  lcd.print(7);
  cajones[7]++;
  pesando = true;
}
else if (cal2 < 0.415 && cal2 > 0.410)
{
  lcd.print(6);
  cajones[6]++;
  pesando = true;
}
else if (cal2 < 0.410 && cal2 > 0.405)
{
  lcd.print(5);
  cajones[5]++;
  pesando = true;
}
else if (cal2 < 0.405 && cal2 > 0.400)
{
  lcd.print(4);
  cajones[4]++;
  pesando = true;
}
else if (cal2 < 0.400 && cal2 > 0.390)
{
  lcd.print(3);
  cajones[3]++;
  pesando = true;
}
else if (cal2 < 0.390 && cal2 > 0.385)
{
  lcd.print(2);
  cajones[2]++;
  pesando = true;
}
else if (cal2 < 0.385 && cal2 > 0.380)
{
  lcd.print(1);
  cajones[1]++;
  pesando = true;
}
else if (cal2 < 0.380 && cal2 > 0.375)
{
  lcd.print(0);
  cajones[0]++;
  pesando = true;
}
}
else if(cal2 < 0.375)
{
  pesando = false;
}
Citar
#16
HOOOOO ahora si
muchas gracias
Citar


Temas similares...
Tema Autor Respuestas Vistas Último mensaje
  Proyectos para el Airsoft. hansugrove 10 1,061 12-05-2017, 06:48 PM
Último mensaje: hansugrove
  LM35 y Contador binario Mentus 3 804 11-04-2015, 10:03 PM
Último mensaje: paredesivan4
  Contador de créditos ElHera 47 2,030 08-02-2015, 06:17 PM
Último mensaje: ElHera