Exemplo n.º 1
0
void Sensor::initSensors() {
	sensGPIO.begin(1);
	
	//Address pins
	sensGPIO.pinMode(FRPIN, OUTPUT);
	sensGPIO.pinMode(LTRPIN, OUTPUT);
	sensGPIO.pinMode(LTLPIN, OUTPUT);
	sensGPIO.pinMode(FLPIN, OUTPUT);
	sensGPIO.pinMode(MRPIN, OUTPUT);
	sensGPIO.pinMode(MLPIN, OUTPUT);
	sensGPIO.pinMode(BRPIN, OUTPUT);
	sensGPIO.pinMode(BLPIN, OUTPUT);

	//-------Set all sensor select pins to high---------------
	sensGPIO.writeGPIOA(0xFF);

	//Ultrasonic pins
	pinMode(A0, OUTPUT);
	pinMode(A1, INPUT);
	
	 for (byte i = sC::FR; i < sC::invalid; i++) {
		SelectSensor(i);
		tsl.begin(TSL2561_ADDR_0);
		tsl.setTiming(TSL2561_GAIN_16X, TSL2561_INTEGRATIONTIME_14MS);
		tsl.setPowerUp();
	}
	 
	delay(14);
	_sensorInitComplete = true;
}
Exemplo n.º 2
0
//Switches the I2C address of the desired sensor and removes others
void Sensor::SelectSensor(byte sensorNumber) {
	if (sensorNumber == sC::FR) { sensGPIO.writeGPIOA(0x7F); SEN_PRINTLN("FR Selected"); }
	else if (sensorNumber == sC::LTR) { sensGPIO.writeGPIOA(0xBF); SEN_PRINTLN("LTR Selected"); }
	else if (sensorNumber == sC::LTL) { sensGPIO.writeGPIOA(0xDF); SEN_PRINTLN("LTL Selected"); }
	else if (sensorNumber == sC::FL) { sensGPIO.writeGPIOA(0xEF); SEN_PRINTLN("FL Selected"); }
	else if (sensorNumber == sC::MR) { sensGPIO.writeGPIOA(0xF7); SEN_PRINTLN("MR Selected"); }
	else if (sensorNumber == sC::ML) { sensGPIO.writeGPIOA(0xFB); SEN_PRINTLN("ML Selected"); }
	else if (sensorNumber == sC::BR) { sensGPIO.writeGPIOA(0xFD); SEN_PRINTLN("BR Selected"); }
	else if (sensorNumber == sC::BL) { sensGPIO.writeGPIOA(0xFE); SEN_PRINTLN("BL Selected"); }
	else {
		ERROR_PRINTLN("Sensor Select Error");
		ERROR_PRINTLN("All address lines returned to default");
		sensGPIO.writeGPIOA(0xFF);
	}
}