BH1750FVI sample code

Corwax
Offline
Зарегистрирован: 28.05.2013

Добрый день.

Первая попытка что-то сделать. Прикрутить лайт сенсор BH1750FVI к мега2560.

Есть sample code

/*
 Sample code for the BH1750 Light sensor
 Version 0.1
 website:www.DFRobot.com
 
 Connection:
 
 VCC-5v
 GND-GND
 SCL-SCL(analog pin 5)
 SDA-SDA(analog pin 4)
 ADD-NC
 */


#include <Wire.h> //BH1750 IIC Mode 
#include <math.h> 
int BH1750address = 0x23; //setting i2c address

byte buff[2];
void setup()
{
  Wire.begin();
  Serial.begin(9600);//init Serail band rate
}

void loop()
{
  int i;
  uint16_t val=0;
  BH1750_Init(BH1750address);
  delay(200);

  if(2==BH1750_Read(BH1750address))
  {
    val=((buff[0]<<8)|buff[1])/1.2;
    Serial.print(val,DEC);     
    Serial.println("[lx]"); 
  }
  delay(150);
}

int BH1750_Read(int address) //
{
  int i=0;
  Wire.beginTransmission(address);
  Wire.requestFrom(address, 2);
  while(Wire.available()) //
  {
    buff[i] = Wire.read();  // receive one byte
    i++;
  }
  Wire.endTransmission();  
  return i;
}

void BH1750_Init(int address) 
{
  Wire.beginTransmission(address);
  Wire.write(0x10);//1lx reolution 120ms
  Wire.endTransmission();
}

При попытке "проверить" его выдает:

BH1750_Sample.pde: In function 'void setup()':
BH1750_Sample:21: error: redefinition of 'void setup()'
sketch_may28a:1: error: 'void setup()' previously defined here
BH1750_Sample.pde: In function 'void loop()':
BH1750_Sample:27: error: redefinition of 'void loop()'
sketch_may28a:6: error: 'void loop()' previously defined here

Можете обложить половыми органами, только дайте пож-та ссылку куда читать.

Самостоятельный гуглояндекс ни к чему не привел.

maksim
Offline
Зарегистрирован: 12.02.2012

Если скомпилируете именно этот пример как он есть без изменений то он скомпилируется. У вас же не компилируется потому что вы  в код добавили еще по одной функции void setup() и void loop(). Читайте внимательно: setup() и loop().

Corwax
Offline
Зарегистрирован: 28.05.2013

maksim пишет:

Если скомпилируете именно этот пример как он есть без изменений

Специально еще раз просто скопировал и вставил в компилятор. Same shit без малейшего изменения :-(

maksim пишет:

вы  в код добавили еще по одной функции void setup() и void loop()

Дико извиняюсь, но я хоть убейте не могу найти ГДЕ я это сделал... Ведь не там где пишу

void BH1750_Init(int address) 

 

maksim
Offline
Зарегистрирован: 12.02.2012

Вот смотрите - пример блинк, так компилируется:

void setup() {                
  // initialize the digital pin as an output.
  // Pin 13 has an LED connected on most Arduino boards:
  pinMode(13, OUTPUT);     
}

void loop() {
  digitalWrite(13, HIGH);   // set the LED on
  delay(1000);              // wait for a second
  digitalWrite(13, LOW);    // set the LED off
  delay(1000);              // wait for a second
}

а вот так нет:

void setup() {                
  // initialize the digital pin as an output.
  // Pin 13 has an LED connected on most Arduino boards:
  pinMode(13, OUTPUT);     
}

void loop() {
  digitalWrite(13, HIGH);   // set the LED on
  delay(1000);              // wait for a second
  digitalWrite(13, LOW);    // set the LED off
  delay(1000);              // wait for a second
}

void setup() {}
void loop() {}

ошибки:

Blink.cpp: In function 'void setup()':
Blink:13: error: redefinition of 'void setup()'
Blink:0: error: 'void setup()' previously defined here
Blink.cpp: In function 'void loop()':
Blink:14: error: redefinition of 'void loop()'
Blink:6: error: 'void loop()' previously defined here

 

Geronimo
Offline
Зарегистрирован: 06.05.2013

у тебя они объявлены в  sketch_may28a и в  BH1750_Sample

Corwax
Offline
Зарегистрирован: 28.05.2013

Geronimo пишет:

у тебя они объявлены в  sketch_may28a и в  BH1750_Sample

 

void loop()
{
 ДАТВАЮМАТЬ,КТОТАКПРОГРАММЫПИЩЕТ!?!?!?!?!?!?!?!
}

Не, ну вы меня конечно извините, но это же за гранью добра и зла!!! Ну я ни за что не мог предположить, что эта ... программа-компилятор ... будет компилять еще и соседние окна!!!

Большое спасибо за оперативные и внятные ответы!

СПАСИБО!

maksim
Offline
Зарегистрирован: 12.02.2012

Наверное не соседние окна, а соседние файлы проэкта:

Corwax
Offline
Зарегистрирован: 28.05.2013

maksim пишет:

Наверное не соседние окна, а соседние файлы.

Да Х его З чего у неё там соседнего!!!

В любом случае - РАБОТАЕТ!

Corwax
Offline
Зарегистрирован: 28.05.2013

НИКОГДА не умел программировать!

Но сейчас доволен до усрачки, так как зажигаю и тушу напаяный диод при изменении освещенности!

Накрываю сенсор ладошкой - 13-ый лед загорается! Убираю ладошку - гаснет!!!

Я работаю в ресторане. И мои сотрудники ПОСТОЯННО забывают включать и гасить вывеску! А лектричество - дороговато.

Вот и придумал себе развлечение собрать авто-включалку-гасилку вывески!

Можно сказать почти собрал! Останеться скомпоновать это все, откалибровать и прикрутить хайвольтажную обвязку. Но это уж не так сложно, как ковыряться в синтаксисе :-))))))