Welcome! Log In Create A New Profile

Advanced

Beeper buzzer i2c sempre acceso su repetier firmware

Posted by f1363216 
Beeper buzzer i2c sempre acceso su repetier firmware
February 11, 2015 01:41PM
Ciao, ho installato un display collegato via i2c e configurato repetier firmware per usarlo.
Il display funziona correttamente.

Visto che rimaneva un pin libero sull'i2c ho collegato un buzzer e ho configurato così il firmware repetier:

Configuration.h
#define FEATURE_BEEPER true

uiconfig.h
/** Select type of beeper
0 = none
1 = Piezo connected to pin
2 = Piezo connected to a pin over I2C
*/
#ifndef BEEPER_TYPE
#define BEEPER_TYPE 2
#define BEEPER_TYPE_INVERTING false
#endif

#if BEEPER_TYPE==1 && !defined(BEEPER_PIN)
#define BEEPER_PIN 37
#endif
#if BEEPER_TYPE==2
#define BEEPER_ADDRESS 0x40 // I2C address of the chip with the beeper pin
#define BEEPER_PIN _BV(7)  // Bit value for pin 8
#define COMPILE_I2C_DRIVER  // We need the I2C driver as we are using i2c
#endif

L'indirizzo è giusto perchè è lo stesso del display, che funziona, e anche il pin 7 è quello non usato dal display.
Il collegamento funziona perchè il buzzer è sempre acceso e si spegne per un breve istante (definito in Configuration.h: BEEPER_SHORT_SEQUENCE) quando giro l'encoder.
In pratica funziona al contrario, è acceso quando deve essere spento e viceversa.

Quindi ho provato a mettere in uiconfig.h:
#define BEEPER_TYPE_INVERTING true
invece di false, ma rimane uguale a prima, forse questo define si riferisce ad altro?

Credo che sia un problema software e non hardware perchè il buzzer suona come ho scritto sopra (se muovo l'encoder viene gestito al contrario, ma viene gestito) e inoltre se metto:
#define BEEPER_TYPE 0
sta correttamente spento senza mai suonare.
Re: Beeper buzzer i2c sempre acceso su repetier firmware
February 11, 2015 02:02PM
Il valore BEEPER_TYPE_INVERTING serve esattamente a fare quello che serve a te.
Ho visto però che nel file ui.h a secondo del tipo di lcd rivengono settati quei valori, non ho ben capito la logica che usa in questo caso repetier però potrebbe darsi che tu modifichi quella parte che però viene poi sovrascritta dall'altra..
Ti conviene andare nel file ui.h cercare la parte che si riferisce al tuo display e fare li le modifiche...


COMPRA ITALIANO - sostieni le nostre aziende - sostieni la nostra gente - sostieni il tuo popolo - sosterrai te stesso.
Alberto C. felice possessore di una Kossel K2
My Blog - My Thingiverse
Re: Beeper buzzer i2c sempre acceso su repetier firmware
February 11, 2015 02:39PM
ciao, ho guardato il file ui.h come hai detto (certo che quelli de repetier potrebbero indentare meglio i file, non si capisce niente winking smiley).
da quello che ho capito in questo file ci sono le impostazioni per i pannelli già supportati dal firmware, infatti all'inizio c'è:
#if FEATURE_CONTROLLER==1
	#include "uiconfig.h"
#endif
che corrisponde ad un pannello impostato a mano, vedi Configuration.h:
For displays and keys there are too many permutations to handle them all in once.
For the most common available combinations you can set the controller type here, so
you don't need to configure uicong.h at all. Controller settings > 1 disable usage
of uiconfig.h

0 = no display
1 = Manual definition of display and keys parameter in uiconfig.h
...
...
...

mentre poi quasi tutto il resto fino alla fine non viene usato nel mio caso.

L'unica parte che rimane alla fine dentro un #if FEATURE_CONTROLLER>0 viene usata nel mio caso, in particolare:
#if BEEPER_TYPE==0
	#define BEEP_SHORT {}
	#define BEEP_LONG {}
#else
	#define BEEP_SHORT beep(BEEPER_SHORT_SEQUENCE);
	#define BEEP_LONG beep(BEEPER_LONG_SEQUENCE);
#endif
Proverò a modificare BEEPER_SHORT_SEQUENCE e BEEPER_LONG_SEQUENCE, però non credo che possa c'entrare qualcosa...
Sorry, only registered users may post in this forum.

Click here to login