HELLO WORLD!

terça-feira, 8 de julho de 2025

O que é um Bit na Eletrônica e na Programação?


O que é um Bit na Eletrônica e na Programação?

Você já se perguntou o que realmente é um bit? Essa pequena palavra de apenas três letras representa a base de toda a eletrônica digital e da programação. Mesmo sendo algo tão pequeno, é o tijolo fundamental da tecnologia moderna!

Definição de Bit

A palavra bit vem do inglês Binary Digit, ou seja, dígito binário. Um bit pode assumir apenas dois valores: 0 ou 1.

Esses dois estados representam dois níveis lógicos:

  • 0 → Desligado, falso, sem corrente, ou nível baixo;

  • 1 → Ligado, verdadeiro, com corrente, ou nível alto.

Na eletrônica, isso pode representar:

  • A ausência ou presença de tensão elétrica;

  • Um LED apagado ou aceso;

  • Um botão desligado ou pressionado.

Já na programação, o bit é usado para armazenar e manipular informações, como números, letras, comandos e imagens — tudo convertido para uma linguagem que o computador entende: a linguagem binária.

Bits na Eletrônica

Na eletrônica digital, os circuitos funcionam com base em sinais de tensão que representam 0 ou 1. Por exemplo:

  • Um microcontrolador como o Arduino envia sinais digitais de 5V (1) ou 0V (0);

  • Um registrador de 8 bits (como o 74HC595) pode armazenar oito valores binários simultaneamente.

Esses bits são usados para:

  • Controlar dispositivos;

  • Enviar dados via comunicação serial (como I2C, SPI, UART);

  • Armazenar valores em memórias EEPROM ou flash.

Bits na Programação

Na programação, tudo é reduzido a bits. Um byte, por exemplo, é composto por 8 bits e pode representar valores de 0 a 255.

Um exemplo prático:

byte valor = 0b10101010; // Um byte com 8 bits binários

Operações com bits são chamadas de operações bitwise, muito usadas em programação embarcada para:

  • Ligar ou desligar pinos;

  • Testar sensores;

  • Compactar dados.

Exemplo Real: Acendendo LEDs com Bits

Imagine que você quer acender 8 LEDs com um Arduino. Você pode usar um byte para representar o estado de cada LED:

LED7    LED6    LED5    LED4    LED3    LED2    LED1    LED0
    1        0        1        0        1        0        1        0

Esse valor em binário (10101010) pode ser enviado para um registrador que acende os LEDs nos padrões desejados. Tudo usando bits!

Conclusão

Mesmo sendo o menor elemento da computação e da eletrônica digital, o bit é essencial. Toda a tecnologia digital — desde celulares, computadores, sensores, internet das coisas (IoT) até inteligência artificial — depende desses dois simples estados: 0 e 1.

Entender o bit é o primeiro passo para mergulhar no mundo da tecnologia!

Comunicação I2C entre NodeMCU e Arduino UNO (DIY)

Comunicação I2C entre NodeMCU e Arduino UNO

Introdução

O protocolo I2C é muito utilizado em projetos de eletrônica para comunicação entre dispositivos usando apenas dois fios:

  • SDA: linha de dados

  • SCL: linha de clock

Neste tutorial, vamos demonstrar como fazer a comunicação I2C entre dois microcontroladores:

  • Um Arduino Uno como escravo (slave)

  • Um NodeMCU ESP8266 como mestre (master)

Essa comunicação permite, por exemplo, que o NodeMCU envie comandos ou receba dados do Arduino Uno em um projeto maior, como automação residencial, monitoramento ou controle de sensores.

Materiais necessários

  • 1x NodeMCU (ESP8266)

  • 1x Arduino Uno

  • 2x Resistores pull-up de 4.7kΩ (opcional, mas recomendado)

  • Jumpers macho-macho

  • Protoboard

Ligações entre NodeMCU e Arduino Uno

Arduino Uno     NodeMCUFunção
A4    D2 (GPIO4)      SDA
A5    D1 (GPIO5)      SCL
GND    GND      Terra comum



Importante: Use resistores de 4.7kΩ entre SDA/SCL e o VCC de 3.3V para garantir sinal estável.

⚠️ NodeMCU usa 3.3V! Como o Arduino trabalha com 5V, em comunicação I2C geralmente é seguro pois o Arduino reconhece 3.3V como nível alto. Porém, se desejar segurança máxima, use um conversor de nível lógico.

Código do Arduino Uno (escravo)

#include <Wire.h> void setup() { Wire.begin(8); // Endereço I2C do Arduino como escravo Wire.onReceive(receberDados); Wire.onRequest(enviarDados); Serial.begin(9600); } void loop() { delay(100); } void receberDados(int bytes) { while (Wire.available()) { char c = Wire.read(); Serial.print("Recebido do NodeMCU: "); Serial.println(c); } }
void enviarDados() { Wire.write("OK"); // Resposta fixa ao mestre }

Código do NodeMCU (mestre)

#include <Wire.h> void setup() { Wire.begin(D2, D1); // SDA, SCL (GPIO4, GPIO5) Serial.begin(115200); } void loop() { Wire.beginTransmission(8); // Endereço do Arduino escravo Wire.write('H'); // Envia caractere Wire.endTransmission(); delay(100); Wire.requestFrom(8, 2); // Solicita 2 bytes do Arduino while (Wire.available()) { char c = Wire.read(); Serial.print("Resposta do Arduino: "); Serial.println(c); } delay(1000); }

Bibliotecas usadas

  • Wire.h: já vem incluída no IDE do Arduino e é compatível com o ESP8266

Se estiver usando o Arduino IDE com o NodeMCU, instale o pacote ESP8266:
Ferramentas > Placa > Gerenciador de Placas > ESP8266 by ESP8266 Community

Teste do projeto

  1. Faça as conexões conforme o esquema

  2. Carregue o código do Arduino Uno primeiro

  3. Em seguida, carregue o código no NodeMCU

  4. Abra o monitor serial do NodeMCU (baud 115200)

  5. Veja os dados sendo enviados e recebidos via I2C

Dicas de solução de problemas

  • Confirme que os fios SDA/SCL estão nos pinos corretos.

  • Use GND comum entre os dois dispositivos.

  • Se a comunicação falhar, adicione resistores pull-up de 4.7kΩ em SDA e SCL.

  • Verifique o endereço do escravo (aqui usamos 8, mas você pode mudar).

Conclusão

A comunicação I2C entre NodeMCU e Arduino Uno abre possibilidades interessantes para projetos que combinam as capacidades de conectividade do ESP8266 com sensores ou periféricos conectados ao Arduino. Com poucos fios, é possível criar um sistema robusto e eficiente.

Se quiser expandir, você pode:

  • Enviar dados analógicos ou sensores do Arduino para o ESP

  • Criar comandos do NodeMCU para controlar motores via Arduino

  • Integrar com interface web no ESP8266 para controlar todo o sistema

R36S - Como corrigir os erros após atualização?

Olá, pessoal! Tudo certo?

Sejam bem-vindos ao nosso blog, onde exploramos o mundo da eletrônica, programação e tudo o que envolve tecnologia prática no dia a dia. Neste primeiro post, vamos falar sobre o console portátil R36S, um dispositivo muito querido por entusiastas de jogos retrô. Recentemente, muitos usuários têm enfrentado um problema após realizar a atualização do sistema: o console simplesmente não liga após o processo.

Neste artigo, vamos entender o que pode estar causando esse problema e como você pode resolvê-lo de forma simples e rápida. Acompanhe o passo a passo completo e recupere seu R36S sem dor de cabeça!

O problema:

Após realizar a atualização do sistema via cartão de memória, meu R36S não ligava de forma alguma. Depois de muita pesquisa, descobri que o problema estava relacionado aos arquivos .dtb do console.

A solução:

Na partição boot do cartão SD que contém o sistema, existem vários arquivos com extensão .dtb. Esses arquivos são responsáveis pelo mapeamento do hardware do dispositivo (como botões, analógicos, tela e todos os periféricos físicos do console).

Para corrigir o problema, apaguei todos os dados da partição boot (atenção: NÃO formate, apenas apague os arquivos). Em seguida, substituí pelos arquivos .dtb originais que vieram com o R36S. No meu caso, eu havia separado o cartão SD original do console e fiz todo o processo em outro cartão, já que o cartão que veio de fábrica não é nada confiável.

Após esse procedimento, o console voltou a funcionar normalmente, inclusive os analógicos, que antes estavam com os comandos invertidos.

O que é um Bit na Eletrônica e na Programação?

O que é um Bit na Eletrônica e na Programação? Você já se perguntou o que realmente é um bit ? Essa pequena palavra de apenas três letras r...