Pages: [1]   Go Down
Author Topic: Problema libreria  (Read 571 times)
0 Members and 1 Guest are viewing this topic.
Offline Offline
Newbie
*
Karma: 0
Posts: 12
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Ho tentato di creare una nuova libreria per gestire due relè alla volta (per comandare elettrovalvole bistabili), ma mi sta dando solo errori su errori, probabilmente ho sbagliato qualcosa di banale...
è la prima libreria che cerco di scrivere.

Code:
#ifndef eValve_h
#define eValve_h
#include <Arduino.h>
class eValve
{
 public:
     eValve(int pin1_1 , int pin1_2)
     void close();
     void open();
 private:
     int _pin1_1;
     int _pin1_2;
};
#endif

________________________________________________

Code:
#include <Arduino.h>
#include "eValve.h"
eValve::eValve(int&nbsp;pin1_1, int&nbsp;pin1_2)
{
pinMode(pin1_1,OUTPUT);
pinMode(pin1_2,OUTPUT);
_pin1_1&nbsp;&nbsp;pin1_1;
_pin1_2&nbsp;&nbsp;pin1_2;
}
void&nbsp;eValve::open()
{
digitalWrite(_pin1_1,HIGH);
delay(100);
digitalWrite(_pin1_2,HIGH);
delay(50);
}
void&nbsp;eValve::close()
{
digitalWrite(_pin1_1,LOW);
delay(100);
digitalWrite(_pin1_2,LOW);
delay(50);
}

__________________________________________

eValve KEYWORD1
open KEYWORD2
close KEYWORD3
« Last Edit: August 26, 2013, 07:18:45 am by woor90 » Logged

ivrea (to)
Offline Offline
Faraday Member
**
Karma: 77
Posts: 4659
miaaao ^-^
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Per postare il codice devi usare il tag apposito.
Qui, sezione 7, spiega come, altrimenti è illeggibile.
http://forum.arduino.cc/index.php?topic=149082.0

qui ti manca un punto e virgola finale:
Code:
eValve(int pin1_1 , int pin1_2)     ; 
Logged

my name is IGOR, not AIGOR

Offline Offline
Newbie
*
Karma: 0
Posts: 12
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Ok grazie, ho corretto, ma continua a non funzionare purtroppo...
Logged

BZ (I)
Offline Offline
Brattain Member
*****
Karma: 251
Posts: 21270
+39 349 2158303
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

i &nbsp; sono presenti anche nel codice o sono venuti fuori nel copia e incolla. Quanto ne so io non ci sono KEYWORD3

Ciao Uwe
Logged

ivrea (to)
Offline Offline
Faraday Member
**
Karma: 77
Posts: 4659
miaaao ^-^
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Manca il codice principale, a me compila senza errori, tolti quei caratteri strani:

H:\Arduino\_projects\prova\prova.ino
Code:
#include <eValve.h>
eValve prova(9,8);
void setup()
{ prova.open();
  prova.close();
}
void loop(){}


H:\Arduino\_projects\LIBRARIES\eValve\eValve.h
Code:
#ifndef eValve_h
#define eValve_h
#include <Arduino.h>
class eValve
{ public:
     eValve(int pin1_1 , int pin1_2);
     void close();
     void open();
  private:
     int _pin1_1;
     int _pin1_2;
};
#endif

H:\Arduino\_projects\LIBRARIES\eValve\eValve.cpp
Code:
#include <Arduino.h>
#include "eValve.h"

eValve::eValve(int pin1_1, int pin1_2)
{ pinMode(pin1_1,OUTPUT);
  pinMode(pin1_2,OUTPUT);
  _pin1_1=pin1_1;
  _pin1_2=pin1_2;
}

void eValve::open()
{ digitalWrite(_pin1_1,HIGH);
  delay(100);
  digitalWrite(_pin1_2,HIGH);
  delay(50);
}

void eValve::close()
{ digitalWrite(_pin1_1,LOW);
  delay(100);
  digitalWrite(_pin1_2,LOW);
  delay(50);
}
« Last Edit: August 29, 2013, 03:04:18 pm by nid69ita » Logged

my name is IGOR, not AIGOR

Offline Offline
Newbie
*
Karma: 0
Posts: 12
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

, a me compila senza errori
Ho ricopiato pari pari il codice che hai postato tu e ho ricreato da zero la cartella della libreria.
Quando includo la libreria però mi aggiunge una riga vuota al posto di
Code:
#include <eValve.h>

Se lo scrivo io a mano invece mi dice:

'eValve' does not name a type

sketch_sep02a:1: error: 'eValve' does not name a type
sketch_sep02a.cpp: In function 'void setup()':
sketch_sep02a:3: error: 'prova' was not declared in this scope
Logged

Offline Offline
Newbie
*
Karma: 0
Posts: 12
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Come non detto, dopo averla riscritta nuovamente, ora funziona.
Probabilmente avevo scritto male qualche nome, boh...

Grazie mille.
Logged

Cagliari, Italy
Offline Offline
Tesla Member
***
Karma: 110
Posts: 6984
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

L'IDE cerca le librerie in \Arduino\libreries, tu le hai in \Arduino\_projects\LIBRARIES\
Controlla il percorso, se usi linux è case sensitive. (giusto Leo?)
Logged

Code fast. Code easy. Codebender --> http://codebender.cc/?referrer=PaoloP

ivrea (to)
Offline Offline
Faraday Member
**
Karma: 77
Posts: 4659
miaaao ^-^
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

L'IDE cerca le librerie in \Arduino\libreries, tu le hai in \Arduino\_projects\LIBRARIES\
Controlla il percorso, se usi linux è case sensitive. (giusto Leo?)

@PaoloP, quei percorsi sono sul mio PC Windows, non dell'utente che chiedeva aiuto. Nessun problema su Win, probabilmente su Linux sarebbero un problema.

@woor90, attenzione ai nomi delle librerie e delle cartelle, su quei nomi mi sembra che l'IDE faccia attenzione alle maiuscole/minuscole;
perciò se classe si chiama eValve, include=>eValve.h e cartella=>eValve
« Last Edit: September 02, 2013, 07:13:14 am by nid69ita » Logged

my name is IGOR, not AIGOR

Cagliari, Italy
Offline Offline
Tesla Member
***
Karma: 110
Posts: 6984
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

 smiley-sweat
Logged

Code fast. Code easy. Codebender --> http://codebender.cc/?referrer=PaoloP

Pages: [1]   Go Up
Jump to: