BASIS temperature

For our project, we did an extension of lab 10 and 11. Reading a temperature was one of the most interesting things we did in lab and we decided to continue on that path. From the Digital Devices class, we have a BASIS board, which among other things, has four seven segment displays. We decided to have the temperature print out on the displays.

The BASIS board has no way of receiving input from the PIC other than basic wires. That means we had to create a transfer protocol to allow data to be sent and received from the PIC to the BASIS. The first thing we did was (using the setup from lab 10 and code from 11) read in the temperature. After we got that data, we converted the input into a Fahrenheit temperature using a basic formula. However, this is where it became difficult. Since the BASIS can only receive wires, it would be very difficult to send multiple bits over the same wire. The best way around that was to use one wire for every bit. To that end, we hooked up eight wires from the PIC to the BASIS. We created an algorithm that would read in a temperature and spit out a binary int array. From that, we configured eight RBX pins from the PIC as output and set each equal to one of the array indices. After that, the output pins were set high or low, based on the array data and the bits were sent to the BASIS.

Once the data was received by the BASIS, the bits were then used to determine which LEDS to turn on, resulting in a binary representation of the temperature. We would have liked to turn on the motor at a certain temperature but we could not figure out how to control the motor. Instead, we hooked up an LED and set it to turn on at a specific temperature, in this case 73 degrees.

Grading: 10 points

  1. Scope -- interesting to interface to a BASIS board
  2. Functionality -- low; only LEDs on BASIS board used
  3. Hardware complexity -- low; pure digital I/O
  4. Software complexity -- ok; decoding of 8 bits to I/O pins
  5. Presentation -- N/A
  6. Practicality / usefulness / fun factor - low; more interesting of the BASIS board did something as well.