![]()  | 
	
| 		
			
			 | 
		#11 | 
| 
			
			
			
			 Старший Пользователь 
			![]() Регистрация: 22.10.2012 
				
				
				
Регион: 78, 98 
					Сообщений: 758
				 
				
				![]() ![]() ![]() ![]()  | 
	
	
	
	
		
			
			 а обязательно побитово слать? помню у меня тоже были проблемы с бинарной отправкой. в хексе все нормально слалось. 
		
	
		
		
		
		
			
				__________________ 
		
		
		
		
	
	В работе Китайнедожып+медиацентр на андроиде  | 
| 
		 | 
	
	
	
		
		
		
		
			 
		
		
		
		
		
		
			
			
		
	 | 
| 		
			
			 | 
		#12 | 
| 
			
			
			
			 Гуру 
			![]() Регистрация: 20.07.2009 
				
				
				
Город: Минск 
Регион: Беларусь 
					Сообщений: 1,543
				 
				
				![]() ![]() ![]() ![]() ![]() ![]() ![]()  | 
	
	
	
	
		
			
			 уже перевел в hex, те же, только в профиль. 
		
	
		
		
		
		
			
				__________________ 
		
		
		
		
	
	Мой проект: Citroen Xsara Android CarPC  | 
| 
		 | 
	
	
	
		
		
		
		
			 
		
		
		
		
		
		
			
			
		
	 | 
| 		
			
			 | 
		#13 | 
| 
			
			
			
			 Гуру 
			![]() Регистрация: 20.07.2009 
				
				
				
Город: Минск 
Регион: Беларусь 
					Сообщений: 1,543
				 
				
				![]() ![]() ![]() ![]() ![]() ![]() ![]()  | 
	
	
	
	
		
			
			 Завел частично индикатор 
		
	
		
		
		
		
			Вот скетч, выводящий слово CODE Код: 
	#define I2C_ADDR 0x38
#define I2C_SEND_BUFFER_SIZE 17 
#include <Wire.h>
void setup() {
delay(5000);
//Serial.begin(115200);//
  Wire.begin();
  initLCD();
/*
  Wire.beginTransmission(I2C_ADDR);
  uint8_t dataArray3[I2C_SEND_BUFFER_SIZE] = { 0xE0, 0xCB, 0xF0, 0, 0, 0, 0, 0, 169, 99, 1, 20, 96, 161, 0, 0, 0 }; 
//  uint8_t dataArray3[I2C_SEND_BUFFER_SIZE] = { 0xE0, 0xCB, 0xF0, 0, 0, 0, 0, 0, 169, 0, 0, 0, 0, 0, 0, 0, 0 }; 
  Wire.write(dataArray3, I2C_SEND_BUFFER_SIZE);
  Wire.endTransmission();
*/
  unsigned char data[14];
  data[0] = 0x00; 
  data[1] = 0x00;
  data[2] = 0x00;
  data[3] = 0x00; 
  data[4] = 0x00;
  data[5] = 0xA9;
  data[6] = 0x63; 
  data[7] = 0x01;
  data[8] = 0x14;
  data[9] = 0x60; 
  data[10] = 0xA1;
  data[11] = 0x00;
  data[12] = 0x00; 
  data[13] = 0x00;
  sendDataToLCD(data);  
/*
  Wire.beginTransmission(I2C_ADDR);
  uint8_t dataArray4[I2C_SEND_BUFFER_SIZE] = { 0xE0, 0xCB, 0xF0, 2, 0, 0, 0, 21, 108, 224, 98, 12, 20, 96, 0, 0, 0 };
  //uint8_t dataArray4[I2C_SEND_BUFFER_SIZE] = { 0xE0, 0xCB, 0xF0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 };
  Wire.write(dataArray4, I2C_SEND_BUFFER_SIZE);
  Wire.endTransmission();
*/  
  unsigned char data2[14];
  data2[0] = 0x02; 
  data2[1] = 0x00;
  data2[2] = 0x00;
  data2[3] = 0x00; 
  data2[4] = 0x15;
  data2[5] = 0x6C;
  data2[6] = 0xE0; 
  data2[7] = 0x62;
  data2[8] = 0x0C;
  data2[9] = 0x14; 
  data2[10] = 0x60;
  data2[11] = 0x00;
  data2[12] = 0x00; 
  data2[13] = 0x00;
  sendDataToLCD(data2);  
}
void loop() { 
}
void sendDataToLCD(unsigned char *data) {
  unsigned char buffer[I2C_SEND_BUFFER_SIZE];
  byte i = 0;
  buffer[0] = 0xE0;
  buffer[1] = 0xCB;
  buffer[2] = 0xF0;
  
  for (i = 3; i < I2C_SEND_BUFFER_SIZE; i ++) {
     buffer[i] = data[i - 3]; 
  }  
  
  Wire.beginTransmission(I2C_ADDR);
  Wire.write(buffer, I2C_SEND_BUFFER_SIZE);
  Wire.endTransmission();
}
void initLCD() {
    /* init
   E0CBF000000000000000 
   E0CBF020000000000000 
   E0CBF000000000000000 
   E0CBF020000000000000  
   */
  
  /*
  Wire.beginTransmission(I2C_ADDR);
  uint8_t dataArray[I2C_SEND_BUFFER_SIZE] = { 0xE0, 0xCB, 0xF0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0 }; 
  Wire.write(dataArray, I2C_SEND_BUFFER_SIZE);
  Serial.print(Wire.endTransmission()); 
  Wire.beginTransmission(I2C_ADDR);
  uint8_t dataArray2[I2C_SEND_BUFFER_SIZE] = { 0xE0, 0xCB, 0xF0, 0x20, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0 }; 
  Wire.write(dataArray2, I2C_SEND_BUFFER_SIZE);
  Serial.print(Wire.endTransmission()); 
*/
   
  unsigned char data[14];
  byte i = 0;
  for (i = 0; i <= 14; i++) {
    data[i] = 0x00; 
  }  
  sendDataToLCD(data); 
  
  data[0] = 0x20;
  sendDataToLCD(data); 
}
Нашел только куски кода для 1:2 Может у кого-то есть готовый кусок кода для случая 1:3 ? 
				__________________ 
		
		
		
		
	
	Мой проект: Citroen Xsara Android CarPC  | 
| 
		 | 
	
	
	
		
		
		
		
			 
		
		
		
		
		
		
			
			
		
	 | 
| 		
			
			 | 
		#14 | 
| 
			
			
			
			 Гуру 
			![]() Регистрация: 20.07.2009 
				
				
				
Город: Минск 
Регион: Беларусь 
					Сообщений: 1,543
				 
				
				![]() ![]() ![]() ![]() ![]() ![]() ![]()  | 
	
	
	
	
		
			
			 Раскурил индикатор. 
		
	
		
		
			Если кому понадобится, вот скетч для управления любым сегментом через COM-порт Код: 
	#define I2C_ADDR 0x38
#define I2C_SEND_BUFFER_SIZE 17 
#include <Wire.h>
void setup() {
	Serial.begin(115200);//
	Wire.begin();
	initLCD();
}
void loop() {
	String content = "";
	char character; 
	while(Serial.available()) {
		character = Serial.read();
		content.concat(character);
	}
	if (content != "") {
		Serial.println(content);
 
		if (content == "!") {
			Serial.println("Reset");
			initLCD();
		}
		else {
			int numArgs = 0;
			int beginIdx = 0;
			int idx = content.indexOf(",");
			String arg;
			Wire.beginTransmission(I2C_ADDR);
			while (idx != -1) {
				numArgs++;
				arg = content.substring(beginIdx, idx);
				Serial.println((byte)arg.toInt());
				Wire.write((byte)arg.toInt());
				if (numArgs == 17) {
					Serial.println('#');
					Wire.endTransmission();
					Wire.beginTransmission(I2C_ADDR);
				}  
				beginIdx = idx + 1;
				idx = content.indexOf(",", beginIdx);
			}
			arg = content.substring(beginIdx);
			Serial.println((byte)arg.toInt());
			Wire.write((byte)arg.toInt());
			Wire.endTransmission();
		}
	}
}
void sendDataToLCD(unsigned char *data) {
  unsigned char buffer[I2C_SEND_BUFFER_SIZE];
  byte i = 0;
  Wire.beginTransmission(I2C_ADDR);
  buffer[0] = 0xE0;
  buffer[1] = 0xCB;
  buffer[2] = 0xF0;
  
  for (i = 3; i < I2C_SEND_BUFFER_SIZE; i ++) {
     buffer[i] = data[i - 3]; 
  }  
  
  Wire.write(buffer, I2C_SEND_BUFFER_SIZE);
  Wire.endTransmission();
}
void initLCD() {
    /* init
   E0CBF000000000000000 
   E0CBF020000000000000 
   E0CBF000000000000000 
   E0CBF020000000000000  
   */
   
  unsigned char data[14];
  byte i = 0;
  for (i = 0; i <= 14; i++) {
    data[i] = 0x00; 
  }  
  sendDataToLCD(data); 
  
  data[0] = 0x20;
  sendDataToLCD(data); 
}
Код: 
	224,203,240,0,0,0,0,0,169,99,1,20,96,161,0,0,0,224,203,240,2,0,0,0,21,108,224,98,12,20,96,0,0,0 Проверено под Виндой под запущенным USBWebserver. Установка проста - распаковать в корневую папку вебсервера, в файле index.php указать номер порта и скорость (сейчас COM3 и 9600). Приложение будет доступно по адресу http://localhost/com/ Можно задавать значения в десятичном, шестнатеричном, бинарном форматах. Все значения будут немедленно отправлены в индикатор. Можно стереть все символы кнопкой Reset. 
				__________________ 
		
		
		
		
	
	Мой проект: Citroen Xsara Android CarPC  | 
| 
		 | 
	
	
	
		
		
		
		
			 
		
		
		
		
		
		
			
			
		
	 | 
![]()  | 
	
	
		
| Здесь присутствуют: 1 (пользователей: 0 , гостей: 1) | |
		
  | 
	
		 |