Автор Тема: Контролер за Електромобил  (Прочетена 2151 пъти)

Неактивен locco

  • Стабилен
  • ****
  • Публикации: 540
  • Рейтинг: 90
Контролер за Електромобил
« -: Декември 02, 2016, 05:28:41 am »
 Как да си направим самоделен контролер 100 конски сили пикова мощност предвиден за електромобил или електромотоциклет. Може да работи с всякакъв волтаж до 144 Волта и максимален пиков ток (ампераж) от 500 ампера. На цена от няколко стотин долара, което означава, че ще си спестите поне $1000 долара от цената на фабричен контролер. На 144 волта с електомобил можете да вдигнете скорост от порядъка на 75 MPH (120km/h). Прочетете http://ecomodder.com/forum/open-revolt-open-source-dc-motor-controller.html Ако искате цялата история! [1]

Под добър EV контролер имаме в предвид способен на висок волтаж (144-300V), Голям номинален и пиков тоци (300/1000A) и надежден. За нещастие всички контролери, които отговарят на тези изисквания са за сериино навити електромотори. Най-добрите SepEx контролери, които са известни, са произвеждани от Curtis (96V) и Kelly (120V). [3]

DC моторите от серията К9 на Костов-Моторс са най-добри за нас. На ниска цена от $1300USD. [4;5]


 3 фазния AC мотор, е абсолютен стандарт за автомобилните компаний. Kогато те правят електомобил. Примери Tesla моторс, Nisan Leaf и т.н. Всички големи използват AC. Има редица предимства пред DC.
 AC мотора е почти вечен. Получавате безплатно и регенеративно спиране. Така че енергията вложена в движение на колата може да бъде върната обратно в батерията. Това прави спирачките на практика вечни! В един АС мотор няма части, които да се износват освен лагерите, но те са тежка серия и са много износоустойчиви.
Пазара буквално е залят с  индустриални 3 фазни AC мотори, така че може да ги намерите евтино, втора ръка. И все още почти всички самодейци ентусиасти, които правят самоделни конверсии в електромобил използват DC мотор. Защо така? Една основна причина за това е, че контролера обикновено е много скъп. Например 211kW Brusa AC motor контролер предвиден за електромобил ще ви струва $21,000: http://www.metricmind.com/price-list/ [2]

Източници:
 1. Homemade 100 HP Motor Controller for an Electric Car by MPaulHolmes
 2. 200kW AC Motor Controller for Electric Car by MPaulHolmes
 3. http://kostov-motors.com/faq/
 4. http://kostov-motors.com/tractionmotors/kostovevmotors%28ac-dc%29/sepexdcmotorsforelectricvehicles/
 4.1. http://kostov-motors.com/tractionmotors/kostovevmotors%28ac-dc%29/sepexdcmotorsforelectricvehicles/k9120vsepex/
 4.2. http://kostov-motors.com/tractionmotors/kostovevmotors%28ac-dc%29/sepexdcmotorsforelectricvehicles/k996vsepex/
 5. http://kostov-motors.com/tractionmotors/kostovevmotors%28ac-dc%29/seriesdcmotorsforelectricvehicles/
 5.1. http://kostov-motors.com/tractionmotors/kostovevmotors%28ac-dc%29/seriesdcmotorsforelectricvehicles/k9/
« Последна редакция: Декември 02, 2016, 05:46:40 am от locco »

Неактивен locco

  • Стабилен
  • ****
  • Публикации: 540
  • Рейтинг: 90
Re: Контролер за Електромобил
« Отговор #1 -: Декември 02, 2016, 02:57:31 pm »
Да направиш Собствен Контролер за електро-автомобил.
DIY EV motor controller

Пол Холмс (Paul Holmes) е направил собствен контролер за постояннотоков мотор, спестявяйки си много пари при собствената си конверсия на автомобил с ДВГ в електромобил. Ето как го е направил: Изглеждаше достатъчно просто, че да си помисля, че мога да го направя. Това казва нещо ;)

Това е третата част на интервюто с Пол Хомлс. Първата част е как той е направил електрически автомобил за около 2200 долара... http://www.electric-cars-are-for-girls.com/build-an-electric-car.html

...второ е неговия списък с частите за електрическия му автомобил. http://www.electric-cars-are-for-girls.com/electric-vehicle-parts.html

Как Пол е Започнал с Това:

Lynne: Пол, не са много хората наемащи се с изработката на техен собствен постояннотоков мотор-контролер. Можеш ли да ни кажеш, как започна да мислиш да направиш това?

Пол: Видях наистина проста схема на постояннотоков мотор контролер за малък вентилатор. Схемата беше базирана на ИС 555 Таймер. Изучавах я известно време. Преди това нямах представа как работят мотор контролерите. Изглеждаше много просто. Исках да се опитам да направя контролер за автомобил, което беше наистина просто и евтино също. По това време открих линк към Ian Hooper's DC motor controller project от ZEVA.

Той предлага да се използва микроконтролер вместо таймер 555. От преди имах познания по програмиране на С, когато бях млад исках да програмирам видео игри. Свалих си безплатен компилатор, и започнах работа по написването на моя първи софтуер за постояннотоков мотор контролер. Това беше през April/May 2008.

След това...

Имаше прекъсване за известно време докато конвертирах автомобила си през лятото.

След това...

Коледната ваканция дойде, бях отегчен, а и беше натрупало доста сняг тук в Olympia! И реших да направя евтин 144v 500amp мотор контролер. Първо исках да опитам да направя по малък 72v 50amp контролер за да го тествам на моя електровелосипед. Купих си дремел за да изрежа пътечки в PCB платката. С дремела се получи найстина много добре! Беше много лесно да се копае медта!

Бях прочел за 144v 600amp постояннотоков мотор контролер който Ian Hooper беше направил. Той беше публикувал снимки на Силовата част. Не изглеждаше толкова много усложнено, след много мислене и изучаване на картинките! http://zeva.com.au/Research/ControllerDesign/

Не беше дал контролната схема, затова се заех да работя над това. Реших че искам контролера да е захранен от 12 волта акумулатор и да може да работи в обхват от 0 to 144v. Обикновенно фирми като Curtis използват вътрешен DC-DC converter (преобразувател) който ограничава обхвата на входните напрежения от 96-120v, или 108v-144v или нещо такова. Получих доста препоръки от evtech.org списък с неща като хардуерна максимално-токова защита. Вече имаме контролерната секция професионално изработена на PCB платка от платкаджийница. Може да направите и силовата част без много затруднения. Групова поръчка за количества 20 или 30, мисля ще струва по $8 на контролна платка.

Вие също може да го направите!

Lynne: Найстина е нещо което всеки би могъл да направи, сега.

Пол: Добре, КИТ-а е наистина идеален, мисля. Хората могат да направят групова покупка на празни контролерни управляващи платки, да поръчат списъка с елементите от Digikey или Mouser, и просто да сглобят частите, запоявайки ги по местата им в контролната платка. Изискват се базови умения за запояване и внимание към детайла, но не е много трудно. Мисля всеки би могъл да направи тази част.

Също може да е хубаво да има предварително ецната PCB за силовата част, и прецизно пробити отвори в PCB и медни радиатори. Освен ако нямате Фреза, или познавате някой който може да го направи или с ецващи химикали, това е трудно да се направи в къщи.

Добрата новина е че има хора с много добри CNC (computer controlled) фрези които могат да направят и 1000 платки със силовата част на ден. Мисля че би могъл да го направи евтино. Също има и друг човек който предложи да го направи безплатно! Но не искам да го претоварвам. Приятел на този човек също може да направи запояването на компонентите на контролната платка за ниска цена!


Lynne: Звучи като проект "група приятели в гаража".

Пол: Мосфетите и диодите е доста лесно да бъдат запоени на място. Също и филтърните кондензатори.

Софтуера е в използваемо състояние. Би било по евтино за човек да си купи предварително програмиран чип или може да си купи и програматор за $80. Микроконтролера ATMega8, който използвам, струва само около $3.50. Отнема само минута да бъде програмиран. Това може да не бъде голям разход.

В крайна сметка с малко помощ от тук от там може да се започне с предварително подготвени части и мисля всеки би могъл да сглоби негов собствен постояннотоков мотор-контролер!

Ако всичко сам си правите би ви струвал около $250 или $300 за 144v 600amp контролер. Ако ползвате готов КИТ $600 USD , по-скъп но това е заради предварително подготвените детайли спестяващи ви ецването, пробиването и др. подобни.

Характеристики на постояннотоковия мотор контролер

Ето някой характеристики на сегашната версия на постояннотоковия мотор контролер с отворен код:

    Заключване при натиснат педал на газта. Ако включите колата с до край натиснат с крак педал на газта, нищо не се случва. контролера ви позволява да потеглите едва когато отпуснете педала докрай. Контролера също управлява и главния контактор, кога да се задейства. Постояннотоковия мотор контролер първо проверява дали няма хардуерни проблеми преди да затвори главния контактор. Мосфетите обикновенно при изгаряне дават на късо, така че софтуера проверява тока да е нулев когато педала на газта е отпуснат при стартиране. Има конектор така че всеки може да препрограмира микроконтролера без да се маха нищо (нарича се вътрешносхемно програмиране ISP). Има и сериен порт за обменяне на информация с потребителя като, ток, температурата на контролера и всичко! По късно ще добавя и контрол на оборотите, за да не могат потребителите инцидентно да превишат оборотите на мотора. Вече я имам часта, само за $6 за да се добави тази опция. Може дори да се направи и круиз-контрол! Просто се програмира така че да подържа константни обороти. Не е голяма работа, дори и да звучи трудно. Програмирането на микроконтролера е много лесно след като веднъж го усвоите. Има толкова много възможности.
    Хардуерна максималнотокова защита. Тази максималнотокова точка се задава от 495amps до 775 amps с въртене на един тример. Ако контролера влезе в ограничение на максималния ток, Газта се отпуска само леко и мосфетите биват изключени хардуерно до старта на следващия цикъл, което става за 1/16000 от секундата.

Други опции могат да бъдат добавени по-късно. Искам да направя версия със синхронно изправяне, която да има значително по малко топлинни загуби, и би допуснала по големи мощности. Това което трябва да се направи е да се заменят freewheel диодите с мосфети, и да се включват и изключват мосфетите точно в правилния момент, за да се държат като идеален диод. Мосфетите имат номинален ток от 130 amps всеки (но на практика само около 70 или 80 amps всеки), а диодите могат да дават само до 50 amps. Така ако се отървем от 10 диода и ги заменим с 10 мосфета, това ще преобрази 500 amp контролера в 700-800 amp контролер.

За тези които са заинтересувани от проекта "Open ReVolt" постояннотоков мотор контролер, подробности могат да бъдат намерени в тази тема http://ecomodder.com/forum/showthread.php/paul-sabrinas-cheap-144v-motor-controller-6404.html на Ecomodder форума.

Lynne: Пол, благодаря отново!

Източник: http://www.electric-cars-are-for-girls.com/dc-motor-controller.html
« Последна редакция: Декември 02, 2016, 03:20:57 pm от locco »

Неактивен locco

  • Стабилен
  • ****
  • Публикации: 540
  • Рейтинг: 90
Re: Контролер за Електромобил
« Отговор #2 -: Декември 03, 2016, 03:35:00 am »
Има 3 основни части в електрическия автомобил:

Мотор Контролер
Батерии
Ел.Мотор

Електрическите превозни средства (EV), способни да се движат по магистрала са по-скъпи от бавните градски EV, защото се нуждаят от повече батерии (понякога при по-нисък волтаж: може да се използва запареляване на батериите) и високоволтов контролер. Един и същ мотор например К9"144V може да бъде използван и в двата случая.

Така за да направим електромобил способен на движение с високи скорости по магистрала по достъпен, за мен най-доброто усилие под $1500 е да се фокусираме към контролера: повече от $1200 може да се спестят от цената на контролера.

Ето го моя план:
Първо да проектирам и конструирам малък по мощност контролер. Планирам го да бъде за 72v 40amp. След това да опитам да увелича мащаба с по-мощен. Ше тествам малкия контролер на моя електровелосипед, който има колекторен постояннотоков мотор.


Днес (12-13-2008, 05:25 AM) поръчах повечето необходими части за изработването на вело-контролера. Когато пристигнат, ще ги снимам и ще покажа процеса на изработка. Ще се опитам да създам вело-контролера преди края на училищната ваканция през януари.

Някои от по-важните поръчани части:

50 MHz two channel oscilloscope
Ten IRFB4110 mosfets
IXDD414PI mosfet gate driver
Five STTH6002CW freewheel diodes
Atmel STK500
ATMega8 microcontroller
7.5 to 76V in, 5V out DC-DC
7.5 to 76v in, 12v out DC-DC
Twelve TS-ED 200v 470uF Panasonic Capacitors


И така как да направим контролер?

Микроконтролера (ATMega8 в моя случай) може да генерира Широчинно-Импулсно Модулиран (ШИМ) сигнал. Така, микроконтролера следи положението на потенциометъра на газта и управлява драйвера на мосфетите със съответния ШИМ сигнал. Драйвера на Мосфетите усилва сигнала. Задачата на Драйвера на Гейтовете на Мосфетите е да ги включва и изключва съответсно с ШИМ(PWM) сигнала. Тогава Мосфетите усилват мощно ШИМ сигнала. Този ШИМ сигнал се подава на мотора, и вие се движите по пътя. Това е!

Микроконтролера също може да следи неща, като: напрежението на батерията, температура или каквото искате!

Мисля захранването на автомобилната версия на контролера да се направи с отделна 12 волта акумулаторна батерия, или от друг източник на 12v, вместо да се захранва с напрежението от всички тягови батерии. Разбира се масата на тяговите батерии не бива да се съединява с масата на 12 волтовата батерия, за разлика от Kelly Controllers (aahh!).

Цената на компонентите е почти същата, но имаме няколко предимства:

Първо, ако сте забелязали, че контролерите работят на 48v-72v, 84v-120v, и т.н.... Това е защото вътре в контролера има DC-DC преобразувател който намалява волтажа и тоя преобразувтел има лимитиран вход. За това моя контролер ще може да работи с достъпните волтажи на входа от 12 волта до 156 волта или нещо такова. Стига да не се минава границата от 200 Волта, защото използвам 200V MOSFET-и.

Второ, може да имате контролер който сам се грижи за резисторите за предварителен заряд, за разлика от това да бъде нещо външно.

Трето, Високоволтовия вход на dc-dc преобразувателя има доста допълнителни компоненти които трябва да се убедим че функционират правилно. 12v-12v опцията няма нищо сложно, тя е значително по проста.

Това е след 6 часово съботно търсене в интернет. Болят ме очите, довиждане!

Това е модифицирана версия на Йан спеед контролера. неговия беше за 24 волта. Тази версия е 72 Волта, и захранва мосфетите и микроконтролера с отделна 12 волта батерия, която е за светлините мигачите и други неща. Не споделят общо замасяване с тяговата батерия.

Отбележете че ШИМ изхода на ATMega8 е ШИМ вход за MOSFET драйвера. Драйвера усилва ШИМ сигнала и отпушва Гейтовете на всички мосфети едновременно!

Впрочем, някога чудели ли сте защо презарядния резистор е толкова важен, защото има много кондензатори с голям капацитет вътре в контролера! Те не обичат да бъдат окъсявани! Ох трябва да се добавят още малко неща в схемата за да може да контролира включването на презарядния резистор когато 12волта биват подадени.

Bike Controller JPG

 Някой неща пристигнаха!
До сега, големите кондензатори, мосфети, мосфет драйвери, малките дребни MLCC (multi-layer ceramic chip) керамични кондензатори, и още мосфети дойдоха сега. Осцилоскопа е в пощата. също взех и метален лист и антистатична гривна за да направя антистатично работно място в гаража на масата. Чудесна новина ще трябва да запоявам тези MLCC's!!!! Какво пък?

За велосипеда. нямам токово ограничение. В моя случай вътрешното съпротивление на старите оловни акумулатори ще бъде достатъчно ограничение на тока и ще предпази мосфетите от повреда. Също съм пробвал електро-велосипеда с прост Ключ на 60 волта без контролер. Беше с доста въртящ момент, ужасен пробег, много глупаво и страшно.

За колата ще ползвам стандартен Хол ефект сензор. Струва около $16 ми се струва. И може да отчита до 600 amps.
Възможен избор на Хол Ефект токов сензор.

Масата е заземена през 1 Мегаом резистор към земя в контакта.

Вело версията на контролера ще е способна да отдаде до 40 amps. На всеки мосфет се падат около 8-10 аmps към шината. Такива тоци изисткват доста дебела мед мисля да използвам 10 номер жица за шина.

So, here's the rub. How do you solder a lead (leed) from a mosfet to such a heavy wire that will be about 6 or 7 inches long? Try it! Take a soldering iron and try it! It's tough. The dang wire won't heat up enough. So, 2 days and many EVTech.org conversations and reading and trying several things that don't work led to an awesome solution! But that's for another update... I just heard the doorbell ring...

HOLD EVERYTHING!!! WHO COULD BE VISITING IN THIS SNOW STORM? ONLY THE UPS MAN!!!!!!!!! That's right! The programmer and 2 microcontrollers (atmega8) just arrived! heck ya dude! This is where things get interesting...

Oh no! It's a static sensitive device? I need a static free workstation! Hmm... What to do? hahaha!

You're not missing anything! Want to know something funny? Lee Hart, the Godfather of Electric vehicles on the EVDL and the EV Tech list suggested something close to what you just said. You know what, I think your idea is maybe better than what I was going to do. There are a few things to deal with, like the bolt heads hitting the pcb underneath the copper bars, but that's not so bad. It can be worked around I think!

Edit: Well, maybe I'll save that way for the car, because I don't need that much copper for the bike version. hmm...

Sometimes you get going in one direction, and you need someone to come along and throw in a little common sense! Thanks, Intrigued!

 STK500 operational!
programmed the micro-controller (after some difficulty getting everything plugged in right! ANGER!) with a program that lets you see some LED's so I could actually tell that it worked. It worked! Unfortunately, the program needed to run a motor controller doesn't really make it easy to see that it's working. I need a dang throttle, and a bunch of electrical components, and just build the left half of the motor controller itself (most of the low power side in the schematic above) just to test the stupid program!

So, I programmed the ATMEGA8 with the motor controller program, on faith, trusting that it's all good. Now I need to build a prototype of the low power half of the controller. No mosfets on this version. Basically, I'm going to be "driving" an LED (baby motor! hehe). Now, this LED will get brighter and dimmer through PWM. I guess I'm making 3 motor controllers, a WEENIE BABY LED 5v 0.01amp "motor controller", a medium 72v 40amp bike controller, and a monstrous 144v 400amp (500? 600???) car motor controller! Hold me back, hold me back!

I have to go to Sylvan really soon, and it's super stormy and snowy! Man, I wish I had more time!

The pictures show the STK500 with the ATMega8 micro-controller plugged in (ready to receive it's motor control program), and various screen shots, including showing that it has been successfully programmed! Hurray!


"Time is the fire in which we burn!" (some guy on like Star Trek 8 or something, when Captain Kirk got stuck in the Nexus with Whoopi Goldberg and Captain Picard)

Thanks! I've been thinking that a highly modularized kit (not lots of skill needed to assemble, maybe just time) might be good. Once a program is written and works well for the controller, the ATMega8 chips are only about $1 each, and the STK500 programmer takes less than a second to program the chip, and software is free, but don't tell Microsoft that. Maybe if I assembled a bunch of logic boards (the low power half), and cut the bus bars (the heavy copper B-, B+, and M-) for the controller, and etched the heavy 4 ounce (per square foot) copper PCB that will be bolted to those bars, and maybe soldered the mosfets and capacitors to the heavy board, the rest would be maybe a couple hours of work assembling that someone without a lot of tools could do?

Update: Some anger! I programmed the chip, built the low power half of the circuit, and the dang LED didn't come on! It's hard to use a $2.99 volt meter to measure voltages that are going from 0 to 5 volts thousands of times a second. My oscilloscope will probably be here really soon, since the probes and power cord came yesterday! I need that thing to see what's going on!

Update 2: I found a mistake in the assembly of the circuit. I hope this fixes the problem.

 Baby motor controller (5v 0.01amp) completed!
There were more than a few mistakes in both the circuit AND the program! It took HOURS to fix them all. ANGER! My beautiful oscilloscope came today. No plug that fit, but I had a spare computer plug that fit. With it, I could enter the world that I had been blind to until now.

So, I hooked up a throttle, and could control my pwm signal. Next, I need to send the pwm signal to a driver to amplify it, and then use the driver to turn on a few mosfets. Next step, 72v 40amp bike controller! Hold me back! Hold me back!

The picture of the oscilloscope with the green lines shows the pwm. It was about 80% of full throttle.

I think I'll install this version in my car and see what sort of acceleration I get. I'm guessing about the same as the forkenswift.

 Program with step by step instructions
Hello! OK, so I have carefully tested the small controller, and watched the results on the oscilloscope. Finally, the software appears to be without any errors, and is much simpler and easier to read now. I think I'll run the bike controller at 4kHz. It may irritate dogs in the neighborhood, but it will keep switching losses down, and it's just a first draft. Well, second draft if you count the 5v 0.01amp one.

To compile this program, download the FREE Atmel AVR Studio!
Atmel AVR Studio

To compile the program, change the file name to end with .c instead of .txt

It wouldn't let me upload it here unless it was in ".txt" format.

There are a lot of page references in PWMAndInputTest.txt. They refer to the PDF of the documentation for the ATMega8. It can be found HERE!
Also, the code assumes you are using the PDIP version of the chip (28 pin version).

// I'm planning on running this at 4 MHz PWM frequency.

#include <stdint.h>
#include <stdlib.h>
#include <inttypes.h>
#include <avr/eeprom.h>
#include <avr/interrupt.h>
#include <avr/io.h>
#include <avr/pgmspace.h>
#include <avr/sleep.h>
#include <avr/wdt.h>


// The 4 Analog to Digital Voltages.  The input of each will range from 0 to 5v.
// After the A/D conversion, the values in these 4 variables will be between 0 and 1023.
// 0 will mean 0 volts was measured.  1023 will mean that 5v was measured.
// The information inputted to the ADC.  Global so that they can be used to modify the pulseWidth
uint16_t pulseWidth=0; // 0 = 0% throttle.  1023 = 100% throttle.
uint16_t oldPulseWidth = 0; // This may be useful?
//uint16_t temperature=0; // temperature measurement 1.  Maybe monitor the MOSFETs with a thermistor?
//uint16_t voltageMeasurement2=0; //  Monitor battery pack voltage?
//uint16_t voltageMeasurement3=0; //  Monitor motor temperature?



// Initialize the Pulse Width Modulator timer.
// Let's use timer 1, the 16 bit timer.  The others are 8 bit.
// 1.  Select the bits that you want set in TCCR1A.  See pg. 98 for help with this.
// 2.  Set the speed of your pwm by setting the bits you want in TCCR1B.  See pg. 100.
// 3.  Enable Pin B1 as the output for the pwm signal that you made.  See pg. 97.
// 4.  Initialize the value of the pwm to 0.  (may not be necessary)
void InitPWM (void)               
{
// Note:  _BV mean the bit value.  So, _BV(COM1A1) is 128, because COM1A1 is bit 7 (2^7).
TCCR1A = _BV(COM1A1)+_BV(WGM11)+_BV(WGM10); // Pg. 98. phase & frequency correct, TOP = 1023.



    TCCR1B &= (128+64+32+16+8); // This turns the binary number 11111xxx into 11111000
TCCR1B |= _BV(CS10); // pg. 100. Pre-scaler = 1.


    // Enable OC1A (the Output Compare Match A Output Pin) as the output pin at pin B1.
// DDRB (Port B Data Direction Register) bit 1 must be set to 1 to make Pin B1 act as the
//   Output Pin for the PWM.
    DDRB = _BV(PINB1); // Pg. 97 for a rather poor explanation.


    // OCR1A contains throttle value.  0 Means 0% throttle.  1023 means 100% throttle.
// Set Initial pulseWidth value to 0.
    OCR1A = 0;
}


// This initializes the analog to digital converter and takes a measurement.  You have to do 4 things.
// 1.  Enable the converter by setting the ADEN bit in ADCSRA
// 2.  Choose the sample speed, by messing with ADPS0, ADPS1, and ADPS2.
// 3.  Choose what voltage you want the converter to view as the highest.  The lowest will be 0.
// To do that, you must mess with the REFS bits in the ADMUX register.
// 4.  To start a conversion, you must set the ADSC bit in the ADCSRA.  Then you have to wait
//      for it to finish.  The result is in the ADC data register, so save it in some variable.
void InitADC(void) {

ADCSRA = _BV(ADEN) | _BV(ADPS2) | _BV(ADPS1); // pg. 208. How fast to sample ADC?
ADMUX = _BV(REFS0); // Use AVcc as the reference voltage for the ADC, pg. 206


// Just do a conversion to get it going. This is probably not necessary.
ADCSRA |= _BV(ADSC); // This sets the ADSC Start Conversion Bit.
while (ADCSRA & 64); // Do nothing until conversion is done.

pulseWidth = ADC; // Now save the value read from the ADC in pulseWidth.
}

// This checks the Analog to Digital Converter inputs.  It is run about 125,000 times a second.
// 1.  Choose which ADC channel (which pin on the chip) you want to convert the voltage of. Pg. 206.
// 2.  Set the ADSC bit to 1.  This starts the conversion.
// 3.  Wait for the conversion to finish.  (Do nothing until it's done)
// 4.  The result is saved in ADC.  Move that result to a variable for later.
void ReadAllADCInputs(void) {
ADMUX &= (128+64+32+16); // = 11110000.  So, this sets MUX to 0000, and leaves the top 4 bits unchanged.
// pg. 206

// Pg. 198.
ADCSRA |= 64; // 64  = 01000000.  So, this sets the ADSC Start Conversion Bit.
while (ADCSRA & 64); // Do nothing until the conversion is done.
pulseWidth = ADC;
}

// Later, implement current limiting and other safety features in here.  Later I won't just read
// the throttle position and blindly let CR1A be the throttle.  Before doing that, I'll make
// sure the current isn't too high, the voltage is in the right range, the controller temperature
// isn't too high...  Based on those measurement, the pulseWidth may need to be scaled back some.
void SetThrottle(void) {
OCR1A = pulseWidth;
}

int main (void) {

InitADC(); // initialize the analog to digital converter
    InitPWM(); // initialize the pulse width modulator
    while (1) { // do this forever
ReadAllADCInputs();  // Check the throttle position, temperature of controller, etc...
SetThrottle();       // Set the throttle based on the inputs.
}
    return (0);
}
__________________
Do not eat a whole giant bag of figs in one sitting. It does things. Terrible things.
kits and boards http://paulandsabrinasevstuff.com/buyitnow.html