Цитата:
Сообщение от BNSF9399
если вы ждете готовый результат - то как отмечалось выше, бесплатно вам его ни кто не даст.
|
я не претендую на готовые дела )
просьба - помочь оживить следующую хрень ( дружественный коллега не выдержал и написал ))
Arduino код:
#include <Wire.h>
int speed;
int value;
int current;
char packet[2];
void setup()
{
Wire.begin();
speed=0;
}
void loop()
{
value=map(analogRead(0), 0, 1024, 0, 255);
if(value!=speed)
{
// изменились показания
speed=value;
// формируем пакет для передачи
packet[0]=10; // 10 - будет команда на изменение скорости
packet[1]=speed; // значение - скорость
sendPacket(11, packet);
}
}
void sendPacket(int address, char *packet) // не уверен что так
{
Wire.beginTransmission(address); // transmit to device #8
Wire.write(packet);
Wire.endTransmission();
}
и
Arduino код:
#include <Wire.h>
int command;
int value;
int motor_pin = 9;
void setup ()
{ Wire.begin(11); // join i2c bus with address #8
Wire.onReceive(receiveEvent); // register event
Serial.begin(9600);
command = 0;
value = 0;}
void loop()
{
}
void receiveEvent(int packetLength) {
if(packetLength==2)
{
command=Wire.read();
value=Wire.read();
}
// обрабатываем команду
switch(command)
{
case 10:
analogWrite(motor_pin,value);Serial.print(value);
break;
}
// отработали, все, команды нет, ждем следующую
command=0;
}