Problema adaptando un max7219 a esp8266 de una arduino nano

buenas tardes, el problema que estoy teniendo es en querer adaptar un codigo de una nano con max7219 a una esp y pretendo imprimir por blynk el mensaje, con eso no hay problema ya lo imprime por serial, es sabido que los pines cambian son distintos googlie los pines donde va ubicado clk , din y cs del display.. tb cambia que la nano cuenta con 5v y la esp no, solo 3v.quisiera saber la experiencia de alguno q me pueda orientar que estoy haciendo mal porque no escupe nada,
solo cambie la ubicacion de los pines clk , data y cs y el voltaje y aun no consigo nada pero compila y me imprime por serial lo que escribo por blynk solo que no lo reproduce en el max7219.cualquier ayuda se agradece


#define BLYNK_PRINT Serial


#include <ESP8266WiFi.h>
#include <BlynkSimpleEsp8266.h>
char auth[] = "naYdbgVR7Mmu3WVlSyW5sAP2_Jg9bQKj";

char ssid[] = "FW785";
char pass[] = "0043197390";
#include <Sodaq_DS3231.h> 
#include <Wire.h>
//#include = "Sodaq_DS3231.h"

#include <MD_Parola.h>
#include <MD_MAX72xx.h>
#include <SPI.h>
#define HARDWARE_TYPE MD_MAX72XX::FC16_HW
#define MAX_DEVICES 16

#define CLK_PIN   D5
#define DATA_PIN  D7
#define CS_PIN    D8

  

MD_Parola P = MD_Parola(HARDWARE_TYPE, CS_PIN, MAX_DEVICES);
// Arbitrary output pins
// MD_Parola P = MD_Parola(HARDWARE_TYPE, DATA_PIN, CLK_PIN, CS_PIN, MAX_DEVICES);
 
void setup() {
  // put your setup code here, to run once:
 Serial.begin(115200);
P.begin();

  Blynk.begin(auth, ssid, pass);
  
}
 BLYNK_WRITE (V5)//boton no hace falta "enviar"
{int pinValue = param.asInt();
Serial.println(pinValue);
}
 BLYNK_WRITE (V6)//terminal
{
  Serial.println (param.asStr());
  P.print ("aaa");
  P.print (param.asStr());
}


void loop() {
  // put your main code here, to run repeatedly:
 Blynk.run();
 




}
type or paste code here

SegĂșn la hoja de datos, el MAX7219 se alimenta como mĂ­nimo con 4V, siendo 5V lo tĂ­pico.
Por esto vas a tener que alimentarlo de manera independiente.

Pero tienes otro detalle a tener en cuenta, el nivel logico alto (HIGH) es detectado a partir de 3.5V mientras el ESP entrega 3.3V como mĂĄximo.
O sea, vas a tener que agregar adaptadores de nivel para manejar las señales entre el ESP y el MAX.

Puede sonar complicado pero es bastante sencillo.

Saludos

1 Like

Y ademas de lo que dice @gatul

Pero no se lo dices:

MD_Parola P = MD_Parola(HARDWARE_TYPE, CS_PIN, MAX_DEVICES);
// Arbitrary output pins
// MD_Parola P = MD_Parola(HARDWARE_TYPE, DATA_PIN, CLK_PIN, CS_PIN, MAX_DEVICES);

Estas tres lineas de codigo deberian ser:

//MD_Parola P = MD_Parola(HARDWARE_TYPE, CS_PIN, MAX_DEVICES);
// Arbitrary output pins
MD_Parola P = MD_Parola(HARDWARE_TYPE, DATA_PIN, CLK_PIN, CS_PIN, MAX_DEVICES);

Saludos.

1 Like

ley tarde tu mensaje, me anduvo bien asi solo alimente el gnd y el vcc a partir de un arduino.

No se cuantos MAX7129 estas usando pero son LEDS y es una matrix 8x8 generalmente de modo que eso consume 10 o mas mA x led, hablamos de 100 o mas x matrix, mucho cuidado para no dañar un arduino, ademås hablas de un ESP8266 que te pedí edites en el título y no lo has hecho, que tiene que ver un Arduino, o lo usaste para entregar los 5V?
Ten cuidado siempre con alimentar cosas que consumen mucho usando un Arduino u otro Microcontrolador, no fueron diseñados para grandes consumos. Tal vez no sea tu caso si usas una sola matriz LED pero considéralo.

Moderador:
Ya lo he editado yo.