• Please visit and share your knowledge at our sister communities:
  • If you have not, please join our official Homebrewing Facebook Group!

    Homebrewing Facebook Group

[BrewUNO] Controlador de Brassagem para BIAB, Single Vessel e Tribloco

Homebrew Talk

Help Support Homebrew Talk:

This site may earn a commission from merchant affiliate links, including eBay, Amazon, and others.
Os PCF só tem diferença quando são PCF8574A e PCF8574, o "P" e o "T" devem ser pra outra finalidade e não tem importância pra nós. Veja as tabelas a baixo, são os endereços de cada modelo de PCF.
View attachment 126364

Minha interface tem os pinos A0, A1 e A2 com sinal "0", o CI é o PCF8574 cujo endereço é o 0x20 que é o mesmo configurado no arquivo "platformio.ini" só que vários usuários relatam que não funciona mesmo mudando o endereço no código fonte, por isso eu acredito que só o CI PCF8574A vai funcionar e aquele endereço que dá pra modificar é o do i2C do LCD.
Minha dica é comprar uma placa i2C com o PCF8574A que normalmente é em SMD.
View attachment 126365
Valeu Massa.
Ontem rodei o I2C Scanner e o resultado foi 2 endereços o 0x20 e o 0x27 (achei estranho encontrar 2 mas como foi a primeira trabalhando com isso não sei se esta certo). Ja alterei no código o endereço como alguns ja fizeram e realmente não funcionou os teclados.

I2C_Scanner_result.png


Vou avaliar o fato de comprar uma placa I2C como voce falou.


I2C device found at address 0x20 -> PCF8574P
I2C device found at address 0x27 -> DISPLAY

Se o display esta no endereço 0x27, entendo que o endereço do código do brewuno não é do display.

-D PCF8574_ADDRESS=0x20


Obrigado!
 
Last edited:
Valeu Massa.
Ontem rodei o I2C Scanner e o resultado foi 2 endereços o 0x20 e o 0x27 (achei estranho encontrar 2 mas como foi a primeira trabalhando com isso não sei se esta certo). Ja alterei no código o endereço como alguns ja fizeram e realmente não funcionou os teclados.

View attachment 126366

Vou avaliar o fato de comprar uma placa I2C como voce falou.


I2C device found at address 0x20 -> PCF8574P
I2C device found at address 0x27 -> DISPLAY

Se o display esta no endereço 0x27, entendo que o endereço do código do brewuno não é do display.

-D PCF8574_ADDRESS=0x20


Obrigado!
Leonardo, vc já olhou o datasheet do seu pcf pra ver qual endereço ele tá setado? Não entendo de programação e apanhei com isso quando montei o meu, mas fiz como vc e rodei o scanner e quando troquei funcionou, não sei onde fiz pq faz um tempinho e futuquei muito, mas vi q a nova versão o display já pode ser setado na configuração do brewuno e o pcf no arquivo platformio.ini.
 
Leonardo, vc já olhou o datasheet do seu pcf pra ver qual endereço ele tá setado? Não entendo de programação e apanhei com isso quando montei o meu, mas fiz como vc e rodei o scanner e quando troquei funcionou, não sei onde fiz pq faz um tempinho e futuquei muito, mas vi q a nova versão o display já pode ser setado na configuração do brewuno e o pcf no arquivo platformio.ini.

Valmir, já olhei sim e o endereço está 0x20, assim como no scanner e também na configuração do platformio.ini e mesmo assim o teclado não funcionou.

Alguma idéia?
 
Valmir, já olhei sim e o endereço está 0x20, assim como no scanner e também na configuração do platformio.ini e mesmo assim o teclado não funcionou.

Alguma idéia?
Tenta ver ss conexões, lembro q havia um desenho q faltava uma ligação e alguém chamou a atenção pra isso, conferi as conexões novamente pode ter passado algo despercebido.
 
Já olhei, já revirei todas a conexões e nada... Essa ligação faltando vc viu aqui no fórum?
Olhei no git e foi corrigido, se pegou de lá o esquema tá correto, era o int do pcf para o pino 3 q faltava antes, quando olhei o desenho lembrei disso. No mais não sei o q dizer, pode ser problema do pcf. Eu uso o nodemcu e o pcf8574T.
 

Attachments

  • IMG_20210430_083436.jpg
    IMG_20210430_083436.jpg
    72.7 KB
  • IMG_20210430_083423.jpg
    IMG_20210430_083423.jpg
    81.4 KB
I2C device found at address 0x20 -> PCF8574P
I2C device found at address 0x27 -> DISPLAY

Se o display esta no endereço 0x27, entendo que o endereço do código do brewuno não é do display.

-D PCF8574_ADDRESS=0x20


Obrigado!

Pela lógica é isso mesmo, só que nem o Bruno soube responder o pq não funciona mudando ali.
Eu sei que se colocar o PCF8574A pros botões, vai funcionar.
É alguma configuração na biblioteca do PCF no BrewUno, no BMEX a biblioteca é mais antiga se não me engano e se mudar esse parâmetro ele aceita o PCF8574, no BrewUno deve ter alguma restrição na biblioteca mais atual.
 
Pela lógica é isso mesmo, só que nem o Bruno soube responder o pq não funciona mudando ali.
Eu sei que se colocar o PCF8574A pros botões, vai funcionar.
É alguma configuração na biblioteca do PCF no BrewUno, no BMEX a biblioteca é mais antiga se não me engano e se mudar esse parâmetro ele aceita o PCF8574, no BrewUno deve ter alguma restrição na biblioteca mais atual.
Entendi. Estou tentando achar um controlador com o PCF8574A mas ta difícil pois a maioria vem com o PCF8574T ou PCF8574.
Você tem ideia de algum lugar que possa vendar o PCF8574A ?
 
Essa teoria do INT me intriga, pois nem no i2C do LCD nem no módulo externo tem a conexão com ele.

Não sei onde possa ter o modelo "A", tem que perguntar pros vendedores pra verificar.
 
Então Mazza, eu uso esse expansor como no desenho do git, e tem o Int.
 

Attachments

  • IMG_20210430_114357.jpg
    IMG_20210430_114357.jpg
    33.9 KB
  • IMG_20210430_114349.jpg
    IMG_20210430_114349.jpg
    35.1 KB
Pela lógica é isso mesmo, só que nem o Bruno soube responder o pq não funciona mudando ali.
Eu sei que se colocar o PCF8574A pros botões, vai funcionar.
É alguma configuração na biblioteca do PCF no BrewUno, no BMEX a biblioteca é mais antiga se não me engano e se mudar esse parâmetro ele aceita o PCF8574, no BrewUno deve ter alguma restrição na biblioteca mais atual.

Então Mazza, acredito que seu palpile sobre a biblioteca esteja certo, pois fiz um teste com um sketch que faz teste do keypad com o LCD e está funcionando a comunicação perfeitamente(esse sketch e para um keypad 3x4 mas da para testar o 1x4).

As bibliotecas usadas são diferentes da usadas no brewuno.

Código usado...

/* Arduino I2C-Keypad using an I2C_Expander module

Created by Yvan / Tutorials | Brainy-Bits
This code is in the public domain...
You can: copy it, use it, modify it, share it or just plain ignore it!
Thx!

*/

#include <Keypad_I2C.h> // I2C Keypad library by Joe Young joeyoung/arduino_keypads
#include <LiquidCrystal_I2C.h> // I2C LCD Library by Francisco Malpartida https://bitbucket.org/fmalpartida/new-liquidcrystal/wiki/Home

#define lcd_addr 0x27 // I2C address of typical I2C LCD Backpack
#define keypad_addr 0x20 // I2C address of I2C Expander module (A0-A1-A2 dip switch to off position)

// LCD Pins to I2C LCD Backpack - These are default for HD44780 LCD's
#define Rs_pin 0
#define Rw_pin 1
#define En_pin 2
#define BACKLIGHT_PIN 3
#define D4_pin 4
#define D5_pin 5
#define D6_pin 6
#define D7_pin 7

// Create instance for LCD called: i2c_lcd
LiquidCrystal_I2C i2c_lcd(lcd_addr,En_pin,Rw_pin,Rs_pin,D4_pin,D5_pin,D6_pin,D7_pin);

// Define the keypad pins
const byte ROWS = 4;
const byte COLS = 3;
char keys[ROWS][COLS] = {
{'1','2','3'},
{'4','5','6'},
{'7','8','9'},
{'*','0','#'}
};

// Keypad pins connected to the I2C-Expander pins P0-P6
byte rowPins[ROWS] = {0, 1, 2, 3}; // connect to the row pinouts of the keypad
byte colPins[COLS] = {4, 5, 6}; // connect to the column pinouts of the keypad

// Create instance of the Keypad name I2C_Keypad and using the PCF8574 chip
Keypad_I2C I2C_Keypad( makeKeymap(keys), rowPins, colPins, ROWS, COLS, keypad_addr, PCF8574 );

void setup() {

i2c_lcd.begin (16,2); // our LCD is a 16x2, change for your LCD if needed

// LCD Backlight ON
i2c_lcd.setBacklightPin(BACKLIGHT_PIN,POSITIVE);
i2c_lcd.setBacklight(HIGH);
i2c_lcd.clear(); // Clear the LCD screen

I2C_Keypad.begin();

}

void loop() {

// Put value of pressed key on keypad in key variable
char key = I2C_Keypad.getKey();

// Light up key pressed on LCD
switch (key) {
case '1':
i2c_lcd.setCursor(0,0);
i2c_lcd.print(key);
break;

case '2':
i2c_lcd.setCursor(0,1);
i2c_lcd.print(key);
break;

case '3':
i2c_lcd.setCursor(3,0);
i2c_lcd.print(key);
break;

case '4':
i2c_lcd.setCursor(3,1);
i2c_lcd.print(key);
break;

case '5':
i2c_lcd.setCursor(6,0);
i2c_lcd.print(key);
break;

case '6':
i2c_lcd.setCursor(6,1);
i2c_lcd.print(key);
break;

case '7':
i2c_lcd.setCursor(9,0);
i2c_lcd.print(key);
break;

case '8':
i2c_lcd.setCursor(9,1);
i2c_lcd.print(key);
break;

case '9':
i2c_lcd.setCursor(12,0);
i2c_lcd.print(key);
break;

case '0':
i2c_lcd.setCursor(12,1);
i2c_lcd.print(key);
break;

case '*':
i2c_lcd.clear();
break;

case '#':
i2c_lcd.setCursor(15,0);
i2c_lcd.print(key);
break;
}
}
 
O seu SSR3 é exatamente o que está ligado na GPIO2 conforme eu comentei ai em cima. Você vai ver que o problema não é no transistor mas o esquema. Eu acredito que vc vai continuar tendo o mesmo problema.
Já aproveita que vai comprar mais componentes e pega uns resistores (2k, 3k3, 4k7, 10k) pra fazer o pull-up.
@Guima Funcionou com o resistor de 2k. :)

Obrigado!
 
@Guima Funcionou com o resistor de 2k. :)

Obrigado!
Boa!!!! Depois quando eu tiver um tempo eu posto aqui o esquema!!

Aproveitando o ensejo, alguém por ai que manja um pouco de programação para fazer uma parceria?

Existe uma melhoria que eu gostaria de implementar na logica do BrewUNO. Eu ate mandei um email to Bruno e abri um issue no site do GitHUB mas acho que ele não se empolgou muito com a ideia.
Com a logica atual pra quem usa SSR com "zero crossing" que são 90% das pessoas, a precisão do PMW não é muito boa. Ou seja, se o PMW esta em 70%, a potencia da resistencia nao esta ncessesariamente em 70%. (Eu fiz um post um tempo atras explicando minha teria disso). Mas basicamente pois a frequência do PWM é muito alta (1kHZ). A ideia é mudar essa frequência no BrewUNO para algo em torno de 1Hz ou menos. Desse jeito o controle sera muito mais preciso.
Eu tentei fazer algumas modificações no código mas não deu muito certo, precisaria alguém que manja mais de programação (principalmente de logica orientada a objetos).

Se alguém se empolgar me manda uma mensagem e agente faz essa parceria. Depois disponibilizamos aqui os resultados.

Abraços,
 
Caros, atualizei meu painel elétrico. Praticamente está finalizado, só falta cortar a tampa para colocar o LCD e os botões mas não é uma exigência.

 
Boa noite a todos!
Primeiramente parabéns pelo excelente projeto e pela dedicação.
01 Tem como controlar a modulação de uma solenóide de GLP?
Tem como o aquecimento da brassagem ser misto?(GLP e resistência). Tipo a solenóide de GLP liga quando a diferença de temperatura atual para a que quer chegar está muito diferente.
02 escolher se a brassagem será elétrica ou a gás.
 
Boa noite
Solicito o auxilio dos colegas. Eu utilizava um notebook para acessar o BrewUno, funcionava tranquilamente. Tive que usar outra máquina e aí aconteceu um problema que na minha santa ignorância não sei resolver. O BrewUno se conecta, mas não abre??? Qual seria a causa???
 
Boa noite
Solicito o auxilio dos colegas. Eu utilizava um notebook para acessar o BrewUno, funcionava tranquilamente. Tive que usar outra máquina e aí aconteceu um problema que na minha santa ignorância não sei resolver. O BrewUno se conecta, mas não abre??? Qual seria a causa???
Vc reservou o ip no roteador? pode ter mudado o ip, reseta ele e configura novamente. Aqui comigo acontece muito com o bpl, reseto e ele volta
 
Boa noite
Solicito o auxilio dos colegas. Eu utilizava um notebook para acessar o BrewUno, funcionava tranquilamente. Tive que usar outra máquina e aí aconteceu um problema que na minha santa ignorância não sei resolver. O BrewUno se conecta, mas não abre??? Qual seria a causa???

Veja se o navegador não está com o tradutor automático ativo, isso impede que a interface seja carregada.
 
Valew pela dica Dumpa!!
Tentei mudar aqui mas o rele continua acionado, sera que estou usando um rele incompatível?
Segue a foto do relé
Boa tarde
Acho que comprei o modulo relé errado. É possível utilizar um módulo rele SSR 5V 2A, para acionar a bomba?
 
Back
Top