Final Project's Stepper and DC Motors Done

Yesterday, after much gnashing of teeth, I finally figured out how to make our evaluation board's DC motor speed up and down gradually when changing between high and low speeds. The number of hours I put into that is embarrassing, but it is now accomplished.

That follows on the heels of a solid eight hours sunk into getting the board's stepper motor to turn clockwise or counterclockwise (or not at all) in gradually changing speeds depending on switch configuration and the direction of temperatures (current and desired) in a given room; for example, if a room's desired temperature is below the current one but the switches for heating are thrown, the motor should be in neutral, not spinning to alter the temperature in the wrong direction.

No ECE 359

For my coming spring term, I had expected to enroll in an elective course: ECE 359, "C and Data Structures." The instructor was rumored to be someone from whom I wanted to study. Yet today I found the course has been canceled, which complicates my schedule, since the lab course I will take has a recitation section that makes any other choice almost impossible.

It turns out to be a potentially larger complication than expected. Because of a time conflict between ECE 302 and the recitation (graduate-student-led Q&A) section for 255/208, I need special permission to register due to that conflict; however, I also need special permission to register for 302 regardless. The result of this bureaucratic snafu is I had to drop 255/208 to register for 302, after which the department will register me for 255/208. My concern is that I have fallen to the back of the queue and will be unable to register for one or both classes.

That is why I am planning to register for a PLC programming course at Ivy Tech, just in case things don't work out at IUPUI.

Half a Day

Yesterday I was in the computer lab for 12 hours: 2pm to 2am. My course's final project is, for my partner and I, home automation in which we program the evaluation board to have an interactive menu, run motors to represent climate control, play music for alarms, and other things.

My parts follow:

  1. LEDs: when in Menu mode, light LED showing the room you're in. When adjusting that room's 8 lights, light the ones that are lit by flipping switches.
  2. Switches: When not in Menu mode, certain switches determine whether a room's heat, AC, or nothing is turned on. They also read whether the fan is high or low. This is monitored for all 8 rooms.
  3. IRQ: Push special button for IRQ that randomly picks a room, flashes LEDs, and plays alarm.
  4. Stepper motor: Turns clockwise for heat, counterclockwise for AC. The speed should be higher the farther apart actual and desired temperatures are for each room.
  5. DC motor: Again, gradual speed up/down for temperature control.

Apparently I have completed the first two: They work just fine when stepped through in the debugger.

Last night I began working on the stepper motor and tried to get it to work at its most basic level. I could step through the motor portion of my code and correctly read the current room's climate control settings, though ignoring temperature for now. Every X number of interrupts, the program reads motor directions and passes them to the motor; the motor turns incrementally. However, when I run it in real time, the motor does not turn, which casts my previous stuff in doubt.