First off I’ve been really tearing it up in my nerdery the last two weeks… It’s messy.. That happens so don’t mind the mess.
So I scored this sweet variable frequency drive (VFD) or also known as a VSD. It’s a Rockwell Automation drive that is to large for my application but it’ll work just fine. I figured I might have to tear out the entire front because I’m feeding it straight DC but they broke out DC to a terminal block ?! I’ll give it a try… I have a 96V power supply that was a long shot but it was no surprise two amps wasn’t enough just to power the electronics for configuration. It isn’t jumped to run… So this beast is a watt-hog just idling. I have a couple batteries I have to pick up in a few days; I am guessing I can start it up on a 48V/19AH string. The power down defaults to zero and I believe it’s set up to run on just enough to run the electronics. I guess I’ll see?! If this doesn’t run on DC (and maybe even if) I’ll gut the AC front end because it’s extra weight. Check out the terminal strip..DC is on the left. Also… In case you’re wondering its about 90lbs.. A lot of heat sink!
Hardness building the last few days.. I chose a combination of .093 and .062 MOLEX connectors because I have a ton of them… and Vetco Electronics has a ton of surplus ones (at .59/.79 ea).. if you want to dig and find matches to… (hint, only like 10% of what they have has a matching gender…) I also bought about 50$ in pins and extra connectors as I know I’ll be using a ton of these. I probably should have bought more of them from digikey but I wouldn’t have ended up with the assortment. The real ugly purchase was my desire to stick with oil/moisture resistance MTW wire. I think it’s also known as appliance wire? Anyways it’s flexible, has nice thick insulation. Disclaimer: I have endless supplies of controls wire with is a low voltage 18 ga power limited wire. Usually plenum rated. … all that wire is usually free for me. This wire isn’t really acceptable.. I spent about $70 on wire and that was totally out of left field. I found a couple spools (~80ft) of it cheaper than new and Vetco has decent prices even compared to eBay so I did buy most of it from Vetco. There is a bunch more 22 ga if someone is looking for it, I wanted 18 ga.
The stepper driver is a CENTENT CN0142 I purchased off eBay for $40. It’s very easy to us. I don’t know if it’s not totally obvious but the “direction” and “pulse” signals are open collector. You’re supplying a ground to signal input and +5VDC to the input labeled so. Overly obvious.. well maybe. Rock solid stepper driver so far. I accelerated my Sparkfun NMEA23 motor from 2kHz to 14kHz fairly quickly in five programmed steps to get my speed up. Worked like a charm… lets see if i can still pull that off under more load.
Also of interest? I had to boot up an old Windows 3.11 laptop to use an old programming app for some super old controls. (Okay, not 1970’s stuff… but early 90s anyways). It’s been a while since I’ve seen that screen (photo below). I didn’t have a mouse but it magically came back to me pretty quick!
Making up harnesses with painfully expensive MTW wire.
I got got home to take delivery of this front end frame piece. Now I’ll be busy this weekend working on electronic steering. The PIC 16F1509 will be controlling all steering functions. I’ve written a remarkable amount of code for how long it’s been since I worked I a project with a F628A and 18F1330 motor control for the Roomba sumo bot. This project has gotten painfully expensive despite scoring some nice freebies. I spent way too much on wire because I want MTW or Teflon.
EDIT: I hate going to the message board… naturally I am licking my wounds from getting scolded for daring to use cblock…
GPR_VAR UDATA
var_name RES 1
…. took care of this issue… at least that fiasco is over.. and I thought the PWM was going to be the hard part! /EDIT
This code is killing me. I’ve pulled it out of something I’m working on… it has been kicking my ass for two days now.
The LED on PORTC,2 should be pulses for a few hundred nanoseconds and then go off….. right? No.. the decfsz sits in an endless loop it seems. Why? I’ve messed up somewhere here?
Another lazy Sunday… A lot of OT the last few weeks at work and Sunday about the only day I have for relaxation so to clear my mind I wrote some test code for Pulse Width Modulation on a development board I purchased from @TINDE made by @TAUTIC . I’ll attach the code for anyone to use.
The code outputs on PWM1 (RC5) at about 1Khz at just under 50% duty cycle but that easy to change if you read the Microchip 16F1508/9 spec sheet section 23.
;*******************************************************************************
; *
; Microchip licenses this software to you solely for use with Microchip *
; products. The software is owned by Microchip and/or its licensors, and is *
; protected under applicable copyright laws. All rights reserved. *
; *
; This software and any accompanying information is for suggestion only. *
; It shall not be deemed to modify Microchip?s standard warranty for its *
; products. It is your responsibility to ensure that this software meets *
; your requirements. *
; *
; SOFTWARE IS PROVIDED "AS IS". MICROCHIP AND ITS LICENSORS EXPRESSLY *
; DISCLAIM ANY WARRANTY OF ANY KIND, WHETHER EXPRESS OR IMPLIED, INCLUDING *
; BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY, FITNESS *
; FOR A PARTICULAR PURPOSE, OR NON-INFRINGEMENT. IN NO EVENT SHALL *
; MICROCHIP OR ITS LICENSORS BE LIABLE FOR ANY INCIDENTAL, SPECIAL, *
; INDIRECT OR CONSEQUENTIAL DAMAGES, LOST PROFITS OR LOST DATA, HARM TO *
; YOUR EQUIPMENT, COST OF PROCUREMENT OF SUBSTITUTE GOODS, TECHNOLOGY OR *
; SERVICES, ANY CLAIMS BY THIRD PARTIES (INCLUDING BUT NOT LIMITED TO ANY *
; DEFENSE THEREOF), ANY CLAIMS FOR INDEMNITY OR CONTRIBUTION, OR OTHER *
; SIMILAR COSTS. *
; *
; To the fullest extend allowed by law, Microchip and its licensors *
; liability shall not exceed the amount of fee, if any, that you have paid *
; directly to Microchip to use this software. *
; *
; MICROCHIP PROVIDES THIS SOFTWARE CONDITIONALLY UPON YOUR ACCEPTANCE OF *
; THESE TERMS. *
; *
;*******************************************************************************
; *
; Filename: main.asm *
; Date: Sept 29 2013 *
; File Version: 1.0 *
; Author: Charles Douvier *
; Company: *
; Description: Test of PWM1 *
;
; Device 16F1509
;
;
;
;
; PIN DIAGRAM
;
; RA0 RC0
; RA1 RC1
; RA2 RC2 STATUS LED
; RC3
; RA4 RB4 RC4
; RA5 RB5 RC5 PWM1
; RB6 RC6
; RB7 RC7
;
;------------------------------------------------------------ *
;*******************************************************************************
; *
; Notes: In the MPLAB X Help, refer to the MPASM Assembler documentation *
; for information on assembly instructions. *
; *
;*******************************************************************************
; *
; Known Issues: This template is designed for relocatable code. As such, *
; build errors such as "Directive only allowed when generating an object *
; file" will result when the 'Build in Absolute Mode' checkbox is selected *
; in the project properties. Designing code in absolute mode is *
; antiquated - use relocatable mode. *
; *
;*******************************************************************************
; *
; Revision History:
; 2013-09-28 Initial *
; *
;*******************************************************************************
;*******************************************************************************
; MAIN PROGRAM
;*******************************************************************************
MAIN_PROG CODE ; let linker place main program
INIT:
;RC5 = PWM1
BANKSEL LATA ;Data Latch
CLRF LATA ;
BANKSEL ANSELC ;
CLRF ANSELC ;Digital IO
BANKSEL PORTC ;
BCF PORTC,5 ;Clear PWM1
BANKSEL TRISC ;Set all PORTC to outputs
CLRF TRISC
BANKSEL PORTC
BSF PORTC,2
I won’t ruin the surprise on what I’m working on. No laser printer, or CNC machine for me (for now?). I borrowed the concept of using a stepper motor from this: website link. I used a LM339 for my comparator because that’s what I had, it worked fine. I have some more testing but I’m pretty sure my low resistance coils on the stepper cause my direction accuracy to be wrong as single stepping about 20% of the time. At a slow speed it works fine. I’ll test my theory out this weekend sometime. Also shown on that 44 pin vector board as I mentioned is a SR flip-flop and some logic to latch the direction and accept a reset from a MCU once the state it read. I didn’t want to deal with any clocks. I realize I could have put that all in software but I didn’t feel like it and I have a lot of vector board to fill up 🙂 The back end of the circuit can be found on the second photo. I had put a OR gate in my written schematic to automatically reset the SR (74LS279) but I dropped it in prototyping. I just got my stepper driver for the NEMA23 stepper mounted there so that’ll make a “fun” Friday night tomorrow as it’s suppose to be rainy and a little chilly out…