Prosím o pomoc

Nedaří se vám s projektem a nenašli jste vhodné místo, kde se zeptat? Napište sem.
Pravidla fóra
Tohle subfórum je určeno pro konzultaci ucelených nápadů, popřípadě řešení komplexnějších projektů, které opravdu není možné rozdělit na menší části.
Většinu problémů jde rozdělit na menší a ptát se na ně v konkrétních subfórech.
Odpovědět
Luky67
Příspěvky: 2
Registrován: 27 úno 2020, 10:48
Reputation: 0

Prosím o pomoc

Příspěvek od Luky67 » 27 úno 2020, 12:04

Zdravím.Jsem tu nový a s Arduinem mám jen málo zkušeností.jsem Automechanik a na netu jsem našel web s projektem testeru vstřikovačů,který se mi líbil a rozhodl jsem se,že si ho postavím.Při stavbě jsem narazil na chybu v kódu,se kterou já nehnu.Nemohl by mi někdo pomoct a kód opravit?Dík.zde je odkaz:https://www.instructables.com/id/Fuel-I ... r-Machine/

ohruska
Příspěvky: 235
Registrován: 08 pro 2017, 20:56
Reputation: 0

Re: Prosím o pomoc

Příspěvek od ohruska » 27 úno 2020, 12:21

Zkus opravit.
Nahradit v textu
"</p><p>", za prázdný řetězec
</p>, za prázdný řetězec
//============================================================================================</p><p>void Pulse_800rpm() {, na
//============================================================================================
void Pulse_800rpm() {

commar
Příspěvky: 31
Registrován: 26 úno 2019, 15:20
Reputation: 0

Re: Prosím o pomoc

Příspěvek od commar » 27 úno 2020, 13:32

V kódu je plno chyb, závorky, void, komentáře...


Zkuste použít toto:
P.S.: mně to přeložit jde... pro UNO...

Kód: Vybrat vše

//============================================================================================
//VARIABLES GLOBALES y CONSTANTES
//============================================================================================
const int b_800rpm = 8;
const int b_1500rpm = 7;
const int b_3600rpm = 10;
const int b_5000rpm = 11;
const int b_salir = 4;
const int b_consflujo = 3; //boton flujo constante al presionar
const int LEDReady = 13; //Indicador Ready
const int LedRPM = 6; //Indicador RPM en funcionamiento
const int LED800rpm = 5; //Indicador 800rpm
const int LED1500rpm = 2; //Indicador 1500rpm
const int LED3600rpm = 12; //Indicador 3600rpm
const int LED5000rpm = A0; //Indicador 5000rpm
const int inject1 = 9; //pin de injeccion pin9
//estas variables guardan el flash pattern
int inject_State = LOW; // estado utilizado para setear el pin
unsigned long previousMillis = 0; // sera guardara la ultima vez que el pin injeccion fue actualizado
//Estados de pin Entradas (botones)
int eb_800rpm;
int eb_1500rpm;
int eb_3600rpm;
int eb_5000rpm;
//int eb_usonido;
int eb_salir;
int eb_consflujo;
//============================================================================================
//SETUP
//============================================================================================
void setup() {
//entradas
pinMode (b_800rpm, INPUT);
pinMode (b_1500rpm, INPUT);
pinMode (b_3600rpm, INPUT);
pinMode (b_5000rpm, INPUT);
pinMode (b_salir, INPUT);
pinMode (b_consflujo, INPUT);
//pinMode (b_usonido, INPUT);
//Salidas
pinMode (LEDReady, OUTPUT);
pinMode (LedRPM, OUTPUT);
pinMode (inject1, OUTPUT);
pinMode (LED800rpm, OUTPUT);
pinMode (LED1500rpm, OUTPUT);
pinMode (LED3600rpm, OUTPUT);
pinMode (LED5000rpm, OUTPUT);
// analogReference(INTERNAL);
Serial.begin(9600);
digitalWrite (LEDReady, HIGH);
}
//============================================================================================
//VOID LOOP
//============================================================================================
void loop() {
eb_800rpm = digitalRead(b_800rpm);
eb_1500rpm = digitalRead(b_1500rpm);
eb_3600rpm = digitalRead(b_3600rpm);
eb_5000rpm = digitalRead(b_5000rpm);
//eb_usonido = digitalRead(b_usonido);
eb_salir = digitalRead(b_salir);
eb_consflujo = digitalRead(b_consflujo);
//SELECCION DE SUB RUTINAS - FUNCIONES DE PULSOS
//activa a 800rpm
if (eb_800rpm == HIGH)
{
Pulse_800rpm();
}
//activa a 1500rpm
if (eb_1500rpm == HIGH)
{
Pulse_1500rpm ();
}
//activa a 3600rpm
if (eb_3600rpm == HIGH)
{
Pulse_3600rpm ();
}
//activa a 5000rpm
if (eb_5000rpm == HIGH)
{
Pulse_5000rpm ();
}
//activa inject1 mientras este presionado luego apaga al soltar el boton
if (eb_consflujo == HIGH)
{
digitalWrite(inject1, HIGH);
}
else
{
digitalWrite(inject1, LOW);
}
/* //activa el limpiador ultrasonido
if (eb_usonido == HIGH)
{
u_sonido ();
}
*/
} //cierra el void loop()
//============================================================================================
//SUB RUTINAS
//============================================================================================
void Pulse_800rpm() {
afuera:
delay(300);
for (; ;) { //800RPM aproximadamente Modo IDLE
digitalWrite(LedRPM, HIGH);
digitalWrite(LED800rpm, HIGH);
eb_salir = digitalRead(b_salir);
long OnTime = 76; // tiempo encendido en milisegundos
long OffTime = 61; // tiempo apagado en milisegundos
// verifica si cambio el tiempo del estado del pin de injeccion
unsigned long currentMillis = millis();
if ((inject_State == HIGH) && (currentMillis - previousMillis >= OnTime))
{
inject_State = LOW; // lo apaga
previousMillis = currentMillis; // Recuerda el tiempo
digitalWrite(inject1, inject_State); // actualiza el Inject1 actual
}
else if ((inject_State == LOW) && (currentMillis - previousMillis >= OffTime))
{
inject_State = HIGH; // lo encuende
previousMillis = currentMillis; // Rercuerda el tiempo
digitalWrite(inject1, inject_State); // actualiza el Inject1 actual
}
else if (eb_salir == HIGH) {
digitalWrite(LedRPM, LOW); //apaga el led RPM
digitalWrite(LED800rpm, LOW);
break;
}
}
}
void Pulse_1500rpm() {
afuera:
delay(300);
for (; ;) { //1500RPM
digitalWrite(LedRPM, HIGH);
digitalWrite(LED1500rpm, HIGH);
eb_salir = digitalRead(b_salir);
long OnTime = 40; // tiempo encendido en milisegundos
long OffTime = 32; // tiempo apagado en milisegundos
// verifica si cambio el tiempo del estado del pin de injeccion
unsigned long currentMillis = millis();
if ((inject_State == HIGH) && (currentMillis - previousMillis >= OnTime))
{
inject_State = LOW; // lo apaga
previousMillis = currentMillis; // Recuerda el tiempo
digitalWrite(inject1, inject_State); // actualiza el Inject1 actual
}
else if ((inject_State == LOW) && (currentMillis - previousMillis >= OffTime))
{
inject_State = HIGH; // lo encuende
previousMillis = currentMillis; // Rercuerda el tiempo
digitalWrite(inject1, inject_State); // actualiza el Inject1 actual
}
else if (eb_salir == HIGH) {
digitalWrite(LedRPM, LOW); //apaga el led RPM
digitalWrite(LED1500rpm, LOW);
break;
}
}
}
void Pulse_3600rpm() {
afuera:
delay(300);
for (; ;) { //3600RPM
digitalWrite(LedRPM, HIGH);
digitalWrite(LED3600rpm, HIGH);
eb_salir = digitalRead(b_salir);
long OnTime = 16.6; // tiempo encendido en milisegundos
long OffTime = 13.28; // tiempo apagado en milisegundos
// verifica si cambio el tiempo del estado del pin de injeccion
unsigned long currentMillis = millis();
if ((inject_State == HIGH) && (currentMillis - previousMillis >= OnTime))
{
inject_State = LOW; // lo apaga
previousMillis = currentMillis; // Recuerda el tiempo
digitalWrite(inject1, inject_State); // actualiza el Inject1 actual
}
else if ((inject_State == LOW) && (currentMillis - previousMillis >= OffTime))
{
inject_State = HIGH; // lo encuende
previousMillis = currentMillis; // Rercuerda el tiempo
digitalWrite(inject1, inject_State); // actualiza el Inject1 actual
}
else if (eb_salir == HIGH) {
digitalWrite(LedRPM, LOW); //apaga el led RPM
digitalWrite(LED3600rpm, LOW);
break;
}
}
}
void Pulse_5000rpm() {
afuera:
delay(300);
for (; ;) { //5000RPM
digitalWrite(LedRPM, HIGH);
digitalWrite(LED5000rpm, HIGH);
eb_salir = digitalRead(b_salir);
long OnTime = 10.52; // tiempo encendido en milisegundos
long OffTime = 8.4; // tiempo apagado en milisegundos
// verifica si cambio el tiempo del estado del pin de injeccion
unsigned long currentMillis = millis();
if ((inject_State == HIGH) && (currentMillis - previousMillis >= OnTime))
{
inject_State = LOW; // lo apaga
previousMillis = currentMillis; // Recuerda el tiempo
digitalWrite(inject1, inject_State); // actualiza el Inject1 actual
}
else if ((inject_State == LOW) && (currentMillis - previousMillis >= OffTime))
{
inject_State = HIGH; // lo encuende
previousMillis = currentMillis; // Rercuerda el tiempo
digitalWrite(inject1, inject_State); // actualiza el Inject1 actual
}
else if (eb_salir == HIGH) {
digitalWrite(LedRPM, LOW); //apaga el led RPM
digitalWrite(LED5000rpm, LOW);
break;
}
}
}

Luky67
Příspěvky: 2
Registrován: 27 úno 2020, 10:48
Reputation: 0

Re: Prosím o pomoc

Příspěvek od Luky67 » 27 úno 2020, 16:09

Ověření funguje.Díky moc za pomoc :D

Odpovědět

Kdo je online

Uživatelé prohlížející si toto fórum: Žádní registrovaní uživatelé a 23 hostů