Important changes to repositories hosted on mbed.com
Mbed hosted mercurial repositories are deprecated and are due to be permanently deleted in July 2026.
To keep a copy of this software download the repository Zip archive or clone locally using Mercurial.
It is also possible to export all your personal repositories from the account settings page.
Dependencies: ESC HX711 Servo mbed-rtos mbed
main.cpp
- Committer:
- AlanHuchin
- Date:
- 2018-06-26
- Revision:
- 0:e1046eeaefdb
File content as of revision 0:e1046eeaefdb:
#include "mbed.h"
//#include "esc.h"
#include "Servo.h"
#include "HX711.h"
#include "rtos.h"
Serial pc(USBTX, USBRX);
DigitalOut myled(LED1);
//ESC esc1(p24);
Servo esc1(p23);
HX711 scale(p29, p30);
InterruptIn pb1(p21);
InterruptIn pb2(p22);
Timer t;
Thread thread1;
Thread thread2;
float cnt = 0.025;
float weight = 0.0;
int x = 0;
float calibration_factor = -112650.0;; //-7050 worked for my 440lb max scale setup
int averageSamples = 100;
void flip_pb1();
void flip_pb2();
void rpm_fun();
void extract_data();
void ON_OFF();
int main() {
pc.baud(115200);
pc.printf("-------------------------------------------------- \n\r");
scale.setScale(0);
scale.tare(); //Reset the scale to 0
long zero_factor = scale.averageValue(averageSamples);
pc.printf("Zero factor: %.4f\n\r" , zero_factor);
scale.setScale(calibration_factor);
pc.printf("Sensor de Peso Calibrado\n\r" );
wait(2.0);
esc1 = 1.0;
wait(6.0);
esc1 = 0.0;
wait(2.0);
pc.printf("Motores Activados\n\r" );
pc.printf("Todo Listo...\n\r" );
wait(2.0);
pb1.rise(&flip_pb1);
pb2.rise(&flip_pb2);
thread1.start(extract_data);
thread2.start( ON_OFF);
//F3 = 0.8584*PWM3-0.1502;
while(1) {
esc1 = cnt;
Thread::wait(20);
}
}
void rpm_fun()
{
}
void extract_data(){
while(true){
Thread::wait(10);
}
}
void ON_OFF(){
while(true){
if(x == 1){
weight = scale.getGram();
pc.printf("%f %.4f %f \n\r",t.read(),weight*1000,cnt);
cnt = cnt + 0.025;
}
if(cnt > 0.95){
t.reset();
t.stop();
cnt = 0.0;
x = 0;
}
Thread::wait(4000);
}
}
void flip_pb1() {
wait_ms(10);
t.start();
x = 1;
}
void flip_pb2() {
wait_ms(10);
}