This forum uses cookies
This forum makes use of cookies to store your login information if you are registered, and your last visit if you are not. Cookies are small text documents stored on your computer; the cookies set by this forum can only be used on this website and pose no security risk. Cookies on this forum also track the specific topics you have read and when you last read them. Please confirm whether you accept or reject these cookies being set.

A cookie will be stored in your browser regardless of choice to prevent you being asked this question again. You will be able to change your cookie settings at any time using the link in the footer.

  • 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
  Responder
#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.
  Responder
#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
  Responder
#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.
  Responder
#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:
  Responder
#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
  Responder
#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]++;
}
  Responder
#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
  Responder
#9
Pero la ejecución se hace en el loop no en el setup, ya que este sólo se ejecuta una vez.
  Responder
#10
lo pruebo
  Responder
#11
ok sube el contador 1 pero cuando retiro la bola para poner otra el contador se pone a 0
  Responder
#12
Pon el int cajones encima del setup y debajo de los includes. El memset dentro del setup
  Responder
#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
  Responder
#14
https://www.dropbox.com/s/zri1ito1lhaxsc...181842.mp4
  Responder
#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;
}
  Responder
#16
HOOOOO ahora si
muchas gracias
  Responder


Posibles temas similares…
Tema Autor Respuestas Vistas Último mensaje
  Proyectos para el Airsoft. hansugrove 10 4,465 12-05-2017, 06:48 PM
Último mensaje: hansugrove
  LM35 y Contador binario Mentus 3 2,333 11-04-2015, 10:03 PM
Último mensaje: paredesivan4
  Contador de créditos ElHera 47 7,505 08-02-2015, 06:17 PM
Último mensaje: ElHera