Paso 2: Instalar este Arduino Sketch
Este sketch de Arduino (y la mayoría de la información en este aviso legal) es de https://github.com/xxv/tracer sin embargo utiliza una velocidad en baudios serie de 57600, tuve que soltar a 9600 para trabajar en mi combinación de ordenador y Arduino.
Tuve algunos problemas para copiar y pegar el dibujo a continuación debido a caracteres no admitidos, así si usted consigue cualquier error con el bosquejo que el original desde el sitio de github.
/*
* Una interfaz para el regulador solar de trazador. * Comunicar de una manera similar a la pantalla de la MT-5 * /
#include
Myserial SoftwareSerial (10, 11); RX, TX
Inicio de uint8_t [] = {0xAA, 0x55, 0xAA, 0x55, 0xAA, 0x55, 0xEB, 0x90, 0xEB, 0x90, 0xEB, 0x90}; uint8_t id = 0x16; uint8_t cmd [] = {0xA0, 0 x 00, 0xB1, 0xA7, 0x7F};
buff de uint8_t [128];
void setup() {Serial.begin(9600);
myserial.Begin(9600); }
to_float (uint8_t * buffer, int offset) del flotador {unsigned full corta = buffer [offset + 1] << 8 | buff [offset];
retorno completo / 100.0; }
void loop() {Serial.println ("lectura del trazalíneas");
myserial.Write (Inicio, sizeof(start)); myserial.Write(ID); myserial.Write (cmd, sizeof(cmd));
int leer = 0;
para (int i = 0; i < 255; i ++) {si (myserial.available()) {buff [leer] = myserial.read(); leer ++;}}
Serial.Print ("leer"); Serial.Print(Read); Serial.println ("bytes");
para (int i = 0; i < leer; i ++) {Serial.print (buff [i], hexagonal); Serial.Print("");}
Serial.println();
batería de flotador = to_float (buff, 9); flotador de pv = to_float (buff, 11); 13-14 reservada float load_current = to_float (buff, 15); Float over_discharge = to_float (buff, 17); Float battery_max = to_float (buff, 19); 21 carga de encendido/apagado / / 22 sobrecarga sí/no / / 23 carga corta sí/no / / reservados 24 / / 25 batería sobrecarga / / 26 sobre descarga si/no uint8_t completo = buff [27]; carga de uint8_t = buff [28]; battery_temp int8_t = buff [29] - 30; Float charge_current = to_float (buff, 30);
Serial.Print ("carga es"); ¿Serial.println (buff [21]? "on": "off");
Serial.Print ("carga actual:"); Serial.println(load_current);
Serial.Print ("nivel de batería:"); Serial.Print(Battery); Serial.Print("/"); Serial.println(battery_max);
Serial.Print ("batería completa:"); ¿Serial.println (completo? "sí": "no");
Serial.Print ("temperatura de la batería:"); Serial.println(battery_temp);
Serial.Print ("voltaje de PV:"); Serial.println(PV);
Serial.Print ("cargar:"); ¿Serial.println (carga? "sí": "no");
Serial.Print ("corriente de carga:"); Serial.println(charge_current);
Delay(1000); }