Štěpán Bechynský
Published © Apache-2.0

Extending Raspberry Pi using PICAXE

There is no ADC support on Raspberry Pi and only one UART and hardware PWM. If you need to extend it, you can use special chips or 1 PICAXE.

IntermediateProtip2,086
Extending Raspberry Pi using PICAXE

Things used in this project

Story

Read more

Code

PICAXE I2C ADC and port expander

VBScript
#no_data
#no_table

init:
	' set frequency, works better
	setfreq m16
	' B pins as output
	let dirsB = %11111111
	' set 7-bit address
	hi2csetup i2cslave, %01101000
	' incoming i2c communication interrupt
	' http://www.picaxe.com/BASIC-Commands/Interrupts-and-Multi-Tasking/setintflags/
	setintflags %01000000, %01000000
main:
	' read value from ADS and put it to register b1
	readadc 22, b1 
	' copy value from b1 to scratchpad regiter 1
	' this value will be available on I2C
	put 1, b1
	debug
	pause 1000
	goto main

' called when value is writen on I2C line
interrupt:
	' copy value from cratchpad to register b0
	get 0, b0
	' check value in b0 and write to pinsB (7-segment display)
	select case b0
	case 0
		let pinsB= %11000000
	case 1
		let pinsB= %11111001
	case 2
		let pinsB= %10100100
	case 3
		let pinsB= %10110000
	case 4
		let pinsB= %10011001
	case 5
		let pinsB= %10010010
	case 6
		let pinsB= %10000010
	case 7
		let pinsB= %11111000
	case 8
		let pinsB= %10000000
	case 9
		let pinsB= %10010000
	case 46
		let pinsB= %01111111
	endselect 
	
	' debug output can be deleted
	debug
	
	'clear interrupt & reset
	let hi2cflag = 0
	setintflags %01000000,%01000000
	return

Credits

Štěpán Bechynský
8 projects • 30 followers
Internet of Things, Arduino, Microsoft, ex-Microsoft MVP
Contact

Comments

Please log in or sign up to comment.