コード例 #1
0
ファイル: Project.c プロジェクト: ruffsl/ECE425
/*******************************************************************
* Function:			float getRightLight(void)
* Input Variables:	none
* Output Return:	float
* Overview:			getRightLight() converts ADC voltage to value inverse proportional to right light
********************************************************************/
float getRightLight( void )
{
	float voltage;
	ADC_SAMPLE adcsample;
	ADC_set_VREF( ADC_VREF_AVCC );
	ADC_set_channel( RIGHT_LIGHT_CHAN );
	adcsample = ADC_sample();
	//LCD_printf( "ADC: %i\n",adcsample);
	voltage = adcsample * ( 5.0 / 1024 );
	//LCD_printf( "right: %f\n",voltage);
	return voltage;
}
コード例 #2
0
ファイル: wunder.c プロジェクト: KevinStephens/osu-asmt-kms
int main(int argc, char **argv)
{
	initialize();
	clear_array();

	PORTE = 0;
	
	ADC_enable();
	ADC_set_channel(ADC_MUX_ADC5);
	ADC_set_prescaler(ADC_PRESCALER_128);
	ADC_start();
	

	while(1){
		set_array_red(read_ADC(ADC_MUX_ADC5));
	}
}	
コード例 #3
0
ファイル: Pixel_Demo.c プロジェクト: ruffsl/ECE425
// getRightIR() converts ADC voltage to inches
float getRightIR(){
		float voltage;//IR range -0.4 to 5.3 V
		float distance;// (cm) 30 cm = 12 inches = 0.4 V	
		float dist;//distance in inches
		ADC_SAMPLE adcsample;
		// Set the Voltage Reference first so VREF=5V.
	 	ADC_set_VREF( ADC_VREF_AVCC );
		// Set the channel we will sample from.
		ADC_set_channel( IRRIGHT_CHAN );
		// Now sample it!
		adcsample = ADC_sample();
		// Convert to meaningful voltage value.
		voltage = adcsample * ( 5.0 / 1024 );
		// Convert to distance in cm
		distance = (2914/(adcsample+5.0))-1.0;
		//Convert distance to inches
		dist = distance*0.3937;
		return dist;
}
コード例 #4
0
ファイル: Project.c プロジェクト: ruffsl/ECE425
/*******************************************************************
* Function:			float float getLeftIR(void)
* Input Variables:	none
* Output Return:	float
* Overview:			getLeftIR() converts ADC voltage to inches
********************************************************************/
float getLeftIR( void )
{
	float voltage;//IR range -0.4 to 5.3 V
	float distance;// (cm) 30 cm = 12 inches = 0.4 V	
	float dist;//distance in inches
	ADC_SAMPLE adcsample;
	// Set the Voltage Reference first so VREF=5V.
 	ADC_set_VREF( ADC_VREF_AVCC );
	// Set the channel we will sample from.
	ADC_set_channel( IRLEFT_CHAN );
	// Now sample it!
	adcsample = ADC_sample();
	//LCD_printf( "ADC: %i\n",adcsample);
	// Convert to meaningful voltage value.
	voltage = adcsample * ( 5.0 / 1024 );
	// Convert to distance in cm
	distance = (2914/(adcsample+5.0))-1.0;
	dist = distance*1;
	return dist;
}
コード例 #5
0
ファイル: Project.c プロジェクト: ruffsl/ECE425
/*******************************************************************
* Function:			float float getFrontIR(void)
* Input Variables:	none
* Output Return:	float
* Overview:			getFrontIR() converts ADC voltage to inches
********************************************************************/
float getFrontIR( void )
{
	//1 inch = 2.54 cm
	//1 cm = 0.3937 inches
	float voltage;//IR range -0.4 to 5.3 V
	float distance;// (cm) 30 cm = 12 inches = 0.4 V	
	float dist;//distance in inches
	ADC_SAMPLE adcsample;
	// Set the Voltage Reference first so VREF=5V.
	ADC_set_VREF( ADC_VREF_AVCC );
	// Set the channel we will sample from.
	ADC_set_channel(IRFRONT_CHAN);
	// Now sample it!
	adcsample = ADC_sample();
	// Convert to meaningful voltage value.
	voltage = adcsample * ( 5.0 / 1024 );
	// Convert to distance in cm
	distance = (2914/(adcsample+5.0))-1.0;
	dist = distance*1;
	return dist;
}