Connect Arduino -> Iskra JS

Тема в разделе "Iskra JS, Espruino, Йодо", создана пользователем AndrOrt, 25 дек 2016.

  1. AndrOrt

    AndrOrt Нуб

    Добрый День!
    Пробовал ли кто-нибудь соединять Arduino -> Iskra JS по примеру Arduino -> Arduino ?
    Соединял
    Arduino Mega (Master)-> Iskra JS (Slave)
    21 (SCL) -> B8 (SCL)
    22 (SDA) -> B9 (SDA)

    Код Arduino Mega (Master)
    Код (C++):
    #include <Wire.h>

    void setup() {
      Wire.begin(); // join i2c bus (address optional for master)
    }

    byte x = 0;

    void loop() {
      Wire.beginTransmission(8); // transmit to device #8
      Wire.write("x is ");        // sends five bytes
      Wire.write(x);              // sends one byte
      Wire.endTransmission();    // stop transmitting

      x++;
      delay(500);
    }
    Помогите написать код для Iskra JS (Slave) для получения данных от Arduino!
     
  2. mcureenab

    mcureenab Гуру

    BIgor нравится это.
  3. AndrOrt

    AndrOrt Нуб

    Рабочий пример Iskra JS (Mastrer)->Arduino(Slave)
    Arduino
    Код (C++):
    #include <Wire.h>

    int received;

    void setup() {
      Wire.begin(8);
      Wire.onReceive(receiveCallback);
      Wire.onRequest(requestCallback);
      Serial.begin(9600);
    }

    void loop() {
      delay(100);
    }

    void receiveCallback(int howMany) {
      while (1 < Wire.available()) { // loop through all but the last
        char c = Wire.read(); // receive byte as a character
        Serial.print(c);         // print the character
      }
       received = Wire.read();    // receive byte as an integer
       Serial.print("receiveCallback= ");
       Serial.println(received);         // print the integer
    }

    void requestCallback()
    {
      uint8_t buffer[1];
      buffer[0] = received;
      Serial.print("requestCallback= ");
      Serial.println(buffer[0]);
      Wire.write(buffer, 1);
    }
    Iskra JS
    Код (Javascript):
    I2C1.setup({sda: B9, scl: B8, bitrate: 400000});
    // Передача пакета данных
    var s = 8;
    console.log("sended= ",s);
    var w = I2C1.writeTo(0x8, s);
    // Приём данных
      setTimeout(function() {
       var r = I2C1.readFrom(0x8, 1)[0];
        console.log("received= ",r);
      }, 5);
    Соединение
    Arduno Mega -> Iskra JS
    20 -> B9 (SDA)
    21 -> B8 (SCL)