Sie sind auf Seite 1von 48

DEBREMARKOS UNIVERSITY

COLLEGE OF TECHNOLOGY

DEPARTMENT OF ELECTRICAL AND COMPUTER

ENGINNERING (CONTROL STREAM)

DESIGN OF AUTOMATIC SATELLITE DISH POSITIONING SYSTEM


BY USING

STEPPER MOTOR BASED ON ARDUINO

Project report submitted in partial fulfillment the requirement for the fourth
year second semester project of electrical and computer engineering

Industrial control stream

GROUP MEMBER

Name ID Number

1.Muhammed Fentaw………………………………… TER/819/06


2.Adane Mekonnen…………………………………….. TER/055/06
3.Anmut Demeke………………………………………..TER/145/06
4.Degitu Zemene…………………………………………TER/361/06
5.Mesay Muhamed…………………………………….. TER/753/06

Advisor Name: Sisay.A (MSc)


SUBMISSION DATE SUBMITED TO: …… April
4/2017
ABSTRACT
In this paper, microcontroller was designed to develop a dish positioning system which can be
operated by using a push button control. The main point of using a dish is to receive signal from
satellites and other broadcasting sources. In order to get the exact angle of position of the dish, it
needs to be adjusted automatically. In order to overcome the difficulty of adjusting manually,
this paper helps in adjusting the position of the dish through a push button control
automatically. Push button control acts as a transmitter whose data is received by a
microcontroller. The microcontroller sends the control signals to the motor through an interface
known as motor driver.

Satellite communication opened up a whole world of TV/Radio entertainment with a


wide variety of programs on offer to choose from. A substantial number of people are seen to
purchase satellite dishes as they seek to be the quality of images inherent to the satellite service.
Satellite communication, however, is limited to the orbiting satellites footprint and adverse
weather conditions that may lead to general drifting of the satellite dish, from its originally
mounted position .This therefore makes satellite dishes prone to misalignment from these
satellites in space resulting in a weakened signal strength reception.

Moreover, satellite dishes and antennas are mounted in very precarious locations, in an
attempt to steer clear from any obstructions such as buildings and trees. This imposes a
risk when it comes to installing and servicing those installed dishes for proper alignment.
Therefore we propose to design a dish control system to assist in positioning and general
installation of satellite dishes. This system will seek to use push button, Arduino, two Stepper
motor to adjust the dish position. It consists of two motors that will enable the dish to move both
in horizontal and vertical direction. An Arduino will be used as the controller to interface
between the signals from the push button, to adjusting the motors. In the end, this project seeks
to solve the problem of manually adjusting the dish and providing a safe solution for mounting
satellite dishes.
LIST OF ACRONYMS
LCD Liquid Crystal Display
EEPROM Electrically Erasable Programmable Read Only Memory
PIC Peripheral Interface Control
DC Direct Current
AC Alternative current
ADC Analog to Digital converter
H High
L Low
MHZ Mega hertz
VREF ref Reference voltage
V Voltage
I/O Input output
LNB Low Noise Bloc

CMOS completely metallic oxide semiconductor

RISC reduced instruction set computer

SRAM static random accese

USART Universal Synchronous/Asynchronous Receiver/Transmitter

SPI serial peripheral Interface

ALU Arithmetic logic unit

CPU central process unit

AVR automatic voltage regulation

IDE integrated development environment


CHAPTER ONE

1 INTRODUCTION

1.1 BACKGROUND

The project is designed to develop a dish positioning system which can be operated by using
push button. In order to overcome the difficulty of adjusting manually, this proposed system
helps in adjusting the position of the dish through a simple push button. This system consists of
two motors that enable the dish to move both in horizontal and vertical direction.
A Satellite dish is a dish-shaped type of parabolic antenna designed to receive electromagnetic
signals from satellites, which transmit data transmissions or broadcasts such as satellite
television. There are many commercial communications satellites in the geosynchronous orbit.
Before we go through, it is best first define some terms as applicable to the world of satellite TV
reception:

Geostationary satellite: Is the satellite remains a fixed (stationary) in an apparent position


relative to the earth; about 35784 km away from the earth if its elevation angle is orthogonal
(90○) to the equator. Its period of revolution is synchronized with that of the earth in inertial
space .Geostationary satellites are located in orbit directly above the equator and stay in the same
place in the sky since they go around the earth at the same angular speed as that of the earth as it
rotates. Satellite locations may thus be defined by longitude only.

Azimuth: The azimuth angle is the angle at which the earth station’s disk is pointing at the
horizon. Defining north is 0 deg or 360 deg, east is 90 deg, south is 180 deg, and west is 270 deg.

Elevation: The elevation angle is the angle by which the antenna bore sight must be rotated to
lock on to the satellite.
Geo Orbit position is the longitude position around the geostationary orbit. The satellites are all
approximately fixed in the sky above the equator. Negative orbit position numbers are degrees
West from Greenwich meridian. Positive numbers are degrees east. The use of East and West
longitudes is popular for public use since the numbers are smaller. Use of degrees East only (0 to
+360deg, going East from Greenwich) however is our preference since the satellites go around
this way and it makes sense for the numbers to keep increasing if the satellite moves forwards.
Trying to do orbit calculations is bad enough without having numbers that keep switching
forwards and backwards. Many satellite operators also use the 0 to +360 deg method, but may
additionally provide the “deg West” notation for some output publications.[1]

The Satellite Dish Antenna should be in straight alignment with Satellite in Space to receive
signal with maximum strength. So it's required to position the Dish Antenna at a certain angle.

1.2 Statement of the problem

There are many reasons and problems which motivate us to seek for solutions and suggestions.
The majority of the satellite dish user need to adjust the position of theirs Satellite Dish every
time when there is occurs misalignment/ disposition of their Satellite Dish to the satellite which
it receives the signal from. With the proposed work, the users of Satellite Dish can save their
time and Money by selecting the desired Satellite channel and the system adjust the azimuth and
Elevation position of the Satellite dish automatically.

1.3 Objectives of the project

1.3.1 General objective


To design satellite dish positioning system by automatically control of the Elevation and
Azimuth angle using two Stepper motor.

1.3.2 Specific objective


The specific objectives of this project is:

 To design the block diagram of the system


 To write the code for the system
 To simulate the design of the system
 To design motor driver specification
 To know how the system is operating.

1.4 Scope of the project

In the recent days the Satellite communication opened up a whole world of TV/Radio
entertainment with a wide variety of programs on offer to choose from. Most Satellite dish
antennas are designed to mount directly on the roof of the Residential house, Hotel. Most
Satellite dish/Receiver that used in Communication Company are already used the Automatic
Dish Positioning System to the sake of the quality information exchange. This system can also be
used in, Recreational Cars. A method for positioning a satellite dish antenna mounted on a
parked vehicle in order to receive signals from a plurality of satellites located in a
geosynchronous belt, a receiver in the vehicle connected to receive signals from the satellite dish
antenna and an electronic compass connected to the mount of the satellite dish antenna for
generating a direction signal corresponding to the magnetic direction of the satellite dish antenna,
said method comprising:

1.5 Significant of the project

Design of satellite dish positioning system can provides different advantages. Some of these are

 To reduce the difficulty of adjusting the satellite dish to get the exact angle.
 To have a wide range of Satellite Channel choice for the User.
 To reduce the maintenance cost in adjusting the satellite dish.
 To reduce the time wasted for the adjustments of the Satellite dish.
CHAPTER TWO

2 LITRATURE REVIEW
Parabolic antennas referred to as "dish" antennas had been in use long before satellite television.
The term "satellite dish" was coined in 1978 during the beginning of the satellite television
industry, and came to refer to dish antennas that send and/or receive signals from
communications satellites.

There are a number of studies for improving the control circuit for positioning satellite dish.

In 4, Jan 2000, Chuong, B. and C. Barry present the design of Positioning mechanism informs an
installer of the quality of the signal received by the receiver coupled to the antenna while the
installer is positioning the antenna. The system is consisted from a signal generator and a
display. A signal generator determining the strength of signals received from the antenna
provides a strength signal to a display at a positional antenna, where the display assists an
installer for accurate pointing of the antenna toward a satellite .

The drawbacks of this Positioning mechanism is that in spite of the signal strength measuring
system the dish aligning still too difficult because the physical movement of the motors is
performed manually by the installer.

Me Me Kyaw, Chaw Myat Nwe and Hla Myo Tun from Department of Electronics Engineering,
Mandalay Technological University present the design of the control unit for aligning a satellite
dish consists of the hardware and software. This unit was consisted of hardware components
which remote controller, PIC, microcontroller, relay driver and DC motor based servo
mechanism. And the software will determine a desired position of the dish and send the
command to the motor through the microcontroller. The control unit works when the remote
send the command to microcontroller to calculate the resolution and save degree and pluses in
the EEPROM when remote send the degree to the microcontroller the motor will be driven the
motor stopped if the count is equal the desired degree. The control unit uses the IR module to
receive the pulses form remote to the microcontroller . The advantage of the control unit can be
used remote to control of the Dc motor and microcontroller for calculation. The limitations of the
control unit described above are First IR sensor’s accuracy depend on the environment
temperature which mean that the system will have a random levels of accuracy. Second IR
sensor must have a line of sight communication. Third radiation form the sun causes
interferences in the IR sensor readings especially at mid-day. Lastly but not last IR sensor quality
depend on company.
Rafael, M.C., J.B. Gonçalves, and P.P.L. developed the positioning circuit consisted from
satellite receiver, GPS module, computer, dish and motors. GPS determine the longitude and
latitude of the dish it connected to the computer using serial bus. Satellite receiver is responsible
for measuring the signal strength received from the satellite periodically and it sends these
measurements to the computer via serial bus. Computer responsible for controlling the whole
system it receives the dish position from the GPS module and the signal strength from the
receiver then it calculates the azimuth and elevation angles. The program moves the motors
according to the azimuth and elevation angles. Since the dish is assumed to be in the correct
position the signal strength may be weak and for insuring that the dish in the correct position
with good signal strength the satellite receiver sends a periodic report about the signal strength to
the computer then the computer uses these reports to align the dish so it receives good signal
strength from the satellite .
The benefits of this poisoning circuit it uses GPS module for determining the longitude and
latitude and it uses computer program for calculating the azimuth and elevation angles. The
drawbacks of this poisoning circuit it’s wired. Wires restrict the user to stay within a small
geographic area. In January, 2007 Muhibul Haque Bhuyan from Department of Electronics and
Telecommunication Engineering, Daffodil International University present the design and
implementation of wireless position control system using a computer for calculating azimuth and
elevation angles after requesting for both of the satellite location and the antenna location. the
program has a function to find out the time needed for each DC motor to be powered on to adjust
its corresponding angle. the powering time for each motor is sent to IR sensor by using parallel
port then the DC motors are positioned to the specified angles .
The limitations of this positioning control system are. First since DC motors are controlled by
timing information's any small increasing or decreasing in these information's the system will not
be aligned to the correct position. Second IR communication is susceptible to sun interference
making them preferred only in night. Third the software used for calculating elevation and
azimuth is too difficult for ordinary people that they have to enter the angle of the satellite they
wish to receive it's channels they have to enter their position longitude and latitude so users must
use another software to locate themselves.
In our project we proposed that the design of satellite dish positioning system consists of the
hardware and software. This unit consisted of hardware components which are push button ,
arduino , motor driver and two stepper motors based . And the software will determine a desired
position of the dish and send the command to the motor through the microcontroller. Push button
send the degree to the microcontroller the motor will be driven the motor stopped if the count is
equal the desired degree. The limitation of Automatic dish positioning system we have designed
uses an open loop control system, but we use closed loop control system makes the system very
stable and efficient.
CHAPTER THREE

3 METHDOLOGY AND MATERIALS

3.1 Methodology of the system

Start

Project Review

Electronic design Software design

Built the System Program the


Circuit Arduino using C-
Code

Integrate the
system

Check the design

Is the simulation
work? NO

End
From the above Block diagram, the project development, the system consists of hardware and
software. The hardware part involves Arduino Uno R3 microcontroller, Stepper motor, Push
Buttons, LCD and Power supply. The software part is the Arduino Board is programmed using
the Arduino IDE software used to interface hardware. The Arduino Based Automatic Dish
Positioning System creates Modernization of the Broadcasting industry and creates the easily
accessible to the information for the Users. The system will be made in the following steps:

 Complete layout of the whole setup will be drawn inform of a block diagram.
 The sampled 3 push Button which maps the Satellite channel choice of User give its
output to the Arduino microcontroller & displayed on the LCD.
 Depending upon the selected Satellite Channel the Azimuth and Elevation position adjust
automatically by the Microcontroller. The Motor Steps until the desired Elevation and
Azimuth angle of desired Satellite has gotten.

3.2 Components of Arduino Based automatic Satellite positioning system

The components are as follows: -

 Arduino Uno R3 microcontroller (The brain of the system).


 Stepper Motor
 Push button
 Motor drive
 Liquid crystal display (LCD).
 Power supply

3.3 Component used Description


This project uses Arduino Uno to controls the motor and to display the selected satellite channel.
Follow the schematic to connect the Arduino to the motor driver, and the driver to the stepper
motor. The motor can be driven by a 12 -36 volt power sources. The Arduino Board is
programmed using the Arduino IDE software. The push button from the user take the desired
channel and sends the signal to the Arduino. The stepper motor adjust the satellite dish until the
desired/ good signal is received.All components are used in this project described as follow.
3.3.1 ARDUINO UNO R3
Arduino is an open-source physical computing platform based on a simple microcontroller
board, and a development environment for writing software for the board. Arduino can be used
to develop interactive objects, taking inputs from a variety of switches or sensors, and controlling
a variety of lights, motors, and other physical outputs. The boards can be assembled by hand or
purchased preassembled; the open-source IDE can be downloaded for free. The Arduino
programming language is an implementation of Wiring, a similar physical computing platform,
which is based on the Processing multimedia programming environment. This project uses
Arduino Uno to controls the motor. Follow the schematic to connect the Arduino to the motor
driver, and the driver to the satellite Dish. The motor can be driven by a 10- 36 volt. The Arduino
Board is programmed using the Arduino IDE software.

Performance

 Digital I/O 0~13.


 Analog I/O 0~5. (R3 is 0~7)
 Input voltage: when connected to the USB without external power supply or external 5 v
output and external power input.
 Arduino size: width of 70 mm X high 54 mm.

Special Port

 VIN:The input voltage to the Arduino board when it's using an external power source (as
opposed to 5 volts from the USB connection or other regulated power source). You can
supply voltage through this pin, or, if supplying voltage via the power jack, access it
through this pin.
 AREF: Reference voltage for the analog inputs. Used with analog Reference.

Figure 3.1: ARDUINO UNO R3

The Arduino has several different kinds of pins each of which is labelled on the board and use
for different functions.

 GND: Short for ‘Ground’. There are several GND pins on the Arduino, any of which can
be used to ground on its circuit.
 5V and 3.3V: Most of the simple components used with the Arduino run happily off of 5
or 3.3 volts.
 Analog: The areas of pins under the 0AnalogIn 0 label (A0 through A5 on the UNO) are
Analog In pins. These pins can read the signal from an analog sensor (like level sensor)
and convert it into a digital value.
 Digital: Across from the analog pins are the digital pins (0 through 13 on the UNO).
These pins can be used for both digital input (like telling if a button is pushed) and digital
output like powering an LED. 
 PWM: some of the digital pins (3, 5, 6, 9, 10, and 11 on the UNO act as normal digital
pins.
The other components are which includes in Arduino boards are:

 Power (USB): Every Arduino board needs a way to be connected to a power source. The
Arduino UNO can be powered from a USB cable coming from computer or a wall power
supply. The USB connection is also used to load code onto Arduino board.
 Reset Button: Just like the original Nintendo, the Arduino has a reset button. Pushing it
will temporarily connect the reset pin to ground and restart any code that is loaded on the
Arduino. This can be very useful if our code doesn’t repeat, but we want to test it
multiple times.
 Power LED Indicator: This LED should light up whenever plug Arduino into a power
source. If this light doesn’t turn on, there’s a good chance something is wrong item.
 Voltage Regulator: it controls the amount of voltage that is let into the Arduino board.

Table 3.1: Specification of ARDUINO UNO

Features Specification

Microcontroller ATmega328p

Operating voltage 5v

Input voltage 7-12v

Digital I/O pins 14(of 6 provide PWM output)

Analog Input pins 6

DC current per I/O pin 40mA

DC current for 3.3v pin 50mA

Flash Memory 32KB(ATmega328) of which 0.5KB

Clock Speed 16MHz


ATMEGA 328P MICRO CONTROLLER

The ATmega328P is a low-power CMOS 8-bit microcontroller based on the AVR enhanced
RISC architecture. By executing powerful instructions in a single clock cycle, the ATmega328P
achieves throughputs approaching 1 MIPS per MHz allowing the system designed to optimize
power consumption versus processing speed The ATmega328P provides the following features:
4K/8K bytes of In-System Programmable Flash with Read-While-Write capabilities, 23 general
purpose I/O lines, 32 general purpose working registers, three flexible Timer/Counters with
compare modes, internal and external interrupts, a serial programmable USART, a byte-oriented
2-wire Serial Interface, an SPI serial port, a 6-channel 10-bit ADC and five software selectable
power saving modes. The Idle mode stops the CPU while allowing the SRAM, Timer/Counters,
USART, 2-wire Serial Interface, SPI port, and interrupt system to continue functioning. The
Power-down mode saves the register contents but freezes the Oscillator, disabling all other chip
functions until the next interrupt or hardware reset. In Power-save mode, the asynchronous timer
continues to run, allowing the user to maintain a timer base while the rest of the device is
sleeping. The ADC Noise Reduction mode stops the CPU and all I/O modules except
asynchronous timer and ADC, to minimize switching noise during ADC conversions. In Standby
mode, the crystal/resonator Oscillator is running while the rest of the device is sleeping. This
allows very fast start-up combined with low power consumption. The AVR core combines a rich
instruction set with 32 general purpose working registers. All the 32 registers are directly
connected to the Arithmetic Logic Unit (ALU), allowing two independent registers to be
accessed in one single instruction executed in one clock cycle.
Figure 3.2: ARDUINO (ATMEGA328P) UNO pin configuration

PIN DESCRIPTIONS

VCC: Digital supply voltage.

GND: Ground.

Port B (PB7:0) XTAL1/XTAL2/TOSC1/TOSC2:

Port B is an 8-bit bi-directional I/O port with internal pull-up resistors (selected for each bit). The
Port B output buffers have symmetrical drive characteristics with both high sink and source
capability. As inputs, Port B pins that are externally pulled low will source current if the pull-up
resistors are activated. The Port B pins are tri-stated when a reset condition becomes active, even
if the clock is not running. Depending on the clock selection fuse settings, PB6 can be used as
input to the inverting Oscillator amplifier and input to the internal clock operating circuit.
Depending on the clock selection fuse settings, PB7 can be used as output from the inverting
Oscillator amplifier. If the Internal Calibrated RC Oscillator is used as chip clock source, PB7...6
is used as TOSC2...1 input for the Asynchronous Timer/Counter2 if the AS2 bit in ASSR is set.

Port C (PC5:0)

Port C is a 7-bit bi-directional I/O port with internal pull-up resistors (selected for each bit). The
PC5...0 output buffers have symmetrical drive characteristics with both high sink and source
capability. As inputs, Port C pins that are externally pulled low will source current if the pull-up
resistors are activated. The Port C pins are tristated when a reset condition becomes active, even
if the clock is not running.

PC6/RESET

If the RSTDISBL Fuse is programmed, PC6 is used as an I/O pin. Note that the electrical
characteristics of PC6 differ from those of the other pins of Port C. If the RSTDISBL Fuse is not
programmed, PC6 is used as a Reset input. A low level on this pin for longer than
the minimum pulse length will generate a Reset, even if the clock is not running.

Port D (PD7:0)

Port D is an 8-bit bi-directional I/O port with internal pull-up resistors (selected for each bit).
The Port D outputbuffers have symmetrical drive characteristics with both high sink and source
capability. As inputs, Port D pins that are externally pulled low will source current if the pull-up
resistors are activated. The Port D pins are tri-stated when a reset condition becomes active, even
if the clock is not running.
AVCC
AVCC is the supply voltage pin for the A/D Converter, PC3:0, and ADC7:6. It should be
externally connected to VCC, even if the ADC is not used. If the ADC is used, it should be
connected to VCC through a low-pass filter. Note that PC6...4 use digital supply voltage, VCC.

AREF
AREF is the analog reference pin for the A/D Converter.

ADC7:6(TQFP and QFN/MLF Package Only)

In the TQFP and QFN/MLF package, ADC7:6 serve as analog inputs to the A/D converter.
These pins are powered from the analog supply and serve as 10-bit ADC channels.[5]

3.3.2 Liquid Crystal Display (LCD)


LCD (Liquid Crystal Display) screen is an electronic display module and find a wide range of
applications. A 16x4 LCD display is very basic module and is very commonly used in various
devices and circuits. These modules are preferred over seven segments and other multi
segment LEDs. The reasons being: LCDs are economical; easily programmable; have no
limitation of displaying special & even custom characters (unlike in seven
segments), animations and so on.

A 16x4 LCD means it can display 16 characters per line and there are 4 such lines. In this LCD
each character is displayed in 5x7 pixel matrix. This LCD has two registers, namely, Command
and Data.

The command register stores the command instructions given to the LCD. A command is an
instruction given to LCD to do a predefined task like initializing it, clearing its screen, setting the
cursor position, controlling display etc. The data register stores the data to be displayed on the
LCD. The data is the ASCII value of the character to be displayed on the LCD. Click to learn
more about internal structure of a LCD. [6]
Figure 3.3 Liquid Crystal Display (LCD)

Table 3.2 Pin number of LCD and its function

PIN NO. SYMBOL FUNCTION

1 VSS Ground

2 VDD + 3 V or + 5 V supply voltage for logic

3 V0 Input voltage for LCD

4 RS H/L register select signal

5 R/W H/L read/write signal

6 E H ->L chip enable signal

7 DB0 H/L data bus line

8 DB1 H/L data bus line


9 DB2 H/L data bus line

10 DB3 H/L data bus line

11 DB4 H/L data bus line

12 DB5 H/L data bus line

13 DB6 H/L data bus line

14 DB7 H/L data bus line

15 LED A(+) + 4.2 V for back light anode

16 LED K(-) 0 V for back light cathode

3.3.3 Stepper motor


A stepper motor or step motor or stepping motor is a brushless DC electric motor that divides a
full rotation into a number of equal steps. The motor's position can then be commanded to move
and hold at one of these steps without any feedback sensor (an open-loop controller), as long as
the motor is carefully sized to the application in respect to torque and speed.

Fundamental operation of the Stepper Motor DC brushed motors rotate continuously when DC
voltage is applied to their terminal. The stepper motor is known by its property to convert a train
of input pulses (typically square wave pulses) into a precisely defined increment in the shaft
position. Each pulse moves the shaft through a fixed angle.

Stepper motors effectively have multiple "toothed" electromagnets arranged around a central
gear-shaped piece of iron. The electromagnets are energized by an external driver circuit or
a microcontroller. To make the motor shaft turn, first, one electromagnet is given power, which
magnetically attracts the gear's teeth. When the gear's teeth are aligned to the first electromagnet,
they are slightly offset from the next electromagnet. This means that when the next
electromagnet is turned on and the first is turned off, the gear rotates slightly to align with the
next one. From there the process is repeated. Each of those rotations is called a "step", with an
integer number of steps making a full rotation. In that way, the motor can be turned by a precise
angle.

Figure 3.4: Stepper motor

Advantages of Stepper Motor

 Low cost for control achieved


 High torque at startup and low speeds
 Ruggedness
 Simplicity of construction
 Can operate in an open loop control system
 Low maintenance
 Less likely to stall or slip
 Will work in any environment
 Can be used in robotics in a wide scale.
 High reliability
 The rotation angle of the motor is proportional to the input pulse.
 The motor has full torque at standstill (if the windings are energized)
 Precise positioning and repeatability of movement since good stepper motors have an
accuracy of 3 – 5% of a step and this error is non-cumulative from one step to the
next.
 Excellent response to starting/stopping/reversing.
 Very reliable since there are no contact brushes in the motor. Therefore the life of the
motor is simply dependent on the life of the bearing.
 The motors response to digital input pulses provides open-loop control, making the
motor simpler and less costly to control.
 It is possible to achieve very low-speed synchronous rotation with a load that is
directly coupled to the shaft.
 A wide range of rotational speeds can be realized as the speed is proportional to the
frequency of the input pulses.

Disadvantages of Stepper Motor

 Require a dedicated control circuit


 Use more current than D.C. motors
 Torque reduces at higher speeds
 Resonances can occur if not properly controlled.
 Not easy to operate at extremely high speeds
There are two basic winding arrangements for the electromagnetic coils in a two phase stepper
motor: bipolar and unipolar.

Unipolar Stepper Motors

A unipolar stepper motor has one winding with center tap per phase. Each section of windings is
switched on for each direction of magnetic field. Since in this arrangement a magnetic pole can
be reversed without switching the direction of current, the commutation circuit can be made very
simple (e.g., a single transistor) for each winding. Typically, given a phase, the center tap of each
winding is made common: giving three leads per phase and six leads for a typical two phase
motor. Often, these two phase commons are internally joined, so the motor has only five leads.
A micro controller or stepper motor controller can be used to activate the drive transistors in the
right order, and this ease of operation makes unipolar motors popular with hobbyists; they are
probably the cheapest way to get precise angular movements

Bipolar Stepper Motor

Bipolar motors have a single winding per phase. The current in a winding needs to be reversed in
order to reverse a magnetic pole, so the driving circuit must be more complicated, typically with
an H-bridge arrangement (however there are several off-the-shelf driver chips available to make
this a simple affair). There are two leads per phase, none are common.[7]

3.3.4 Push Button


A push-button or simply button is a simple switch mechanism for controlling some aspect of a
machine or a process. Buttons are typically made out of hard material,
usually plastic or metal. The surface is usually flat or shaped to accommodate the human finger
or hand, so as to be easily depressed or pushed. Buttons are most often biased switches, though
even many un-biased buttons (due to their physical nature) require a spring to return to their un-
pushed state. [8]

Figure 3.5 Push Button


3.3.5 ULN2003 Stepper Motor Driver
The Mini Stepper Driver is small size and easy to use. It used ULN2003 to amplify the control
signal from the Arduino. The Drive voltage can up to 15v.

Figure 3.6: ULN2003 Stepper Motor Driver

Features

 The easiest module to learn how to control the Stepper and finish the simple project.
 The logic control voltage:3~5.5V
 Motor Supply Voltage: 5~ 15V
 It can sink 500mA from a 50V supply, but you'd better limit the driver voltage under 15v.
 Operating temperature: -25 degree Celsius ~ +90 degree Celsius

Step motor is to a machine to convert pulse to angle displacement. So if you give stepper driver a
certain pulse signal, it will drive step motor to a certain angle. The Users can control the angle
the stepper moved by the number of the pulse. And you also can control the speed of the stepper
rotate by the frequency of the pulse. [9]
3.3.5.1 H bridge motor driver circuit

An H bridge is an electronic circuit that enables a voltage to be applied across a load in either
direction. These circuits are often used in robotics and other applications to allow DC motors to
run forwards or backwards.

In general an H-bridge is a simple circuit, containing four switching element, with the load at
the center, in an H-like configuration:

Figure 3.7 H bridge circuit


The switching elements (Q1..Q4) are FET transistors, in some high-voltage applications IGBTs.
Integrated solutions also exist but whether the switching elements are integrated with their
control circuits. The diodes (D1..D4) are called catch diodes and are usually of a Schottky type.

The top-end of the bridge is connected to a power supply (battery for example) and the bottom-
end is grounded.

In general all four switching elements can be turned on and off independently, though there are
some obvious restrictions.

Though the load can in theory be anything you want, by far the most pervasive application if H-
bridges is with stepper motor (steppers need two H-bridges per motor) load. In the following I
will concentrate on applications as a brushless DC motor driver.

Operation of H bridge circuit

The basic operating mode of an H-bridge is fairly simple: if Q1 and Q4 are turned on, the left
lead of the motor will be connected to the power supply, while the right lead is connected to
ground. Current starts flowing through the motor which energizes the motor in the forward
direction and the motor shaft starts spinning.
Figure 3.8 forward direction H bridge

If Q2 and Q3 are turned on, the reverse will happen, the motor gets energized in the reverse
direction, and the shaft will start spinning backwards.

Figure 3.8 Reverse direction H bridge

3.3.6 Power Supply

The DC source was designed with a rectifier and filter circuit. A full bridge rectifier was chosen
because they have less ripple than a half bridge rectifier because the frequency is twice as fast.
This means the filter has to supply the voltage for only half as long so it has less time. We have
used Transformer with rating of 220/12V which steps down the voltage level from 220 V AC to
required voltage level to feed the system.

220
/12
V

3.4 Block diagram of the Automatic Satellite dish positioning System

Power supply

LCD Display
Motor Driver

(ULN2003A)

ARDUNIO UNO
(ATmega328P)
Push button

Stepper
Motor

Satellite Dish
3.5 Working principle of the block diagram

The power supply provides power to the Arduino, to the LCD and Stepper Motor. The Arduino
Uno used to controls the Stepper motor. Follow the schematic to connect the Arduino to the
motor driver, and the driver to the Stepper Motor. The motor can be driven by a 9-36 volt power
sources depending on the load present. The Arduino Board is programmed using the Arduino
IDE software. In other word water tube used to transmit water to the plant land. The Push Button
takes the input from the Users’ desired Satellite Channel and this push button sends the signal to
the Arduino and the Arduino adjust the Azimuth and Elevation Angle of the satellite dish
depending on the user selection. The system uses open loop control because the stepper has the
capacity of make the thing Precise.
3.5.1 Flow chart of the Automatic Satellite dish positioning system

Start

Initialize LCD and ports

Read the Satellite channel from the push button

Display the Satellite Name on LCD

Is Read the Azimuth and


Elevation angle?
NO

YES

Turn on the azimuth and Elevation’s Get


stepper Motor updated
angle

Steps the both motor depends on the


selected Satellite Channel

End
3.5.2 Flow chart description
The flow chart description is as follow.

 Initializing the 16*4 alphanumeric LCD and ports.


 Take the input from the User using the Push Button,
 Depending on the User selection of the Satellite channel, the Microcontroller reads the
input and display it on the Liquid Crystal Display(LCD)
 The Azimuth and Elevation’s Stepper Motors initialize.
 Depending on the User selection of the Satellite channel, both stepper motor steps
according to the elevation and Azimuth angle we declared which corresponds to the
Satellite Channel name.
 In the next User selection of the Satellite channel, the Microcontroller reads the input
and display it on the Liquid Crystal Display (LCD).
 Subtract the Azimuth and Elevation angle of the Present selection of the Satellite
Channel from the previous and get the updated the Azimuth and Elevation angle.
 Depending on the updated angle, both stepper motor steps.
CHAPTER FOUR

OVERALL CIRCUIT DIAGRAM AND SIMULATION


RESULTS
4.1 System Design

The Arduino Based automatic Satellite dish positioning system interface module is designed to
take the selected Satellite channel in this project the system uses five Satellite channel /condition.

Azimuth and elevation are angles used to define the apparent position of an object in the sky,
relative to a specific observation point. The observer is usually (but not necessarily) located on
the earth's surface.

The azimuth (az) angle is the compass bearing, relative to true (geographic) north, of a point on
the horizon directly beneath an observed object. The horizon is defined as a huge, imaginary
circle centered on the observer, equidistant from the zenith (point straight overhead) and the
nadir (point exactly opposite the zenith). As seen from above the observer, compass bearings are
measured clockwise in degrees from north. Azimuth angles can thus range from 0 degrees
(north) through 90 (east), 180 (south), 270 (west), and up to 360 (north again).

The elevation (el) angle, also called the altitude, of an observed object is determined by first
finding the compass bearing on the horizon relative to true north, and then measuring the angle
between that point and the object, from the reference frame of the observer. Elevation angles for
objects above the horizon range from 0 (on the horizon) up to 90 degrees. [10]
Figure 4.1: Azimuth and Elevation angle

Figure 4.2 Azimuth angle

Figure 4.3 Elevation Angle


4.2 Over all circuit Diagram
ATMEGA 328P MICRO CONTROLLER is the brain of the project which initiates the stepper
motor Driver and the corresponding Stepper Motor. The Elevation and Azimuth angle of the
Satellite dish is adjusted by making the corresponding pushbutton pin of the microcontroller
high.

Figure 4.2 Over all circuit Diagram

The circuit diagrams works on the three push button the first push button consider as “NEXT”,
the second push button consider as ”BACK “ and the third push button consider as” OK” which
is connected to the Microcontroller is high then the microcontroller reads the input and display it
the corresponding satellite name, its Elevation angle and its Azimuth angle. At the same time the
microcontroller also activates the motor drive to activate the both stepper motor depend on the
state of the pushbutton.

When we first run the circuit initiates, then LCD will display the text ”Welcome to auto sat
finder ”and” press next” is displayed and the system waits until the user to enter the desired
satellite channel by pressing the pushbutton. For the time being the system operates for five
satellite channel. The system response for the five channel is as followed.

Eutel Sat Condition:

When the first pushbutton pressed(next), the microcontroller analog pin A0 is HIGH and the
microcontroller activates the LCD that to display the “SatName=EutelSatAzi=186 degree Ele=81
degree”. After display the text on the LCD press the third pushbutton(ok ) ,the microcontroller
analog pin A3 is high then microcontroller sends the signal to the motor driver that to steps the
elevation and azimuth’s stepper motor to find the exact position of the satellite dish depends on
the angle which is defined on the microcontroller.

Figure; Eutel Sat condition of simulation result


Nile Sat Condition
When the first pushbutton pressed(next), for the second time, the microcontroller analog pin A0
is HIGH and the microcontroller activates the LCD that to display the
“SatName=NileSatAzi=261degree Ele=38 degree”. After display the text on the LCD press the
third pushbutton(ok ) ,the microcontroller analog pin A3 is high then microcontroller sends the
signal to the motor driver that to steps the elevation and azimuth’s stepper motor to find the exact
position of the satellite dish depends on the angle which is defined on the microcontroller.

Figure 4.4 Nile Sat condition of simulation result


Arab Sat Condition:

When the first pushbutton pressed(next) for the third time, the microcontroller analog pin A0 is
HIGH and the microcontroller activates the LCD that to display the “SatName=ArabSatAzi=220
degree Ele=78 degree”. After display the text on the LCD press the third pushbutton(ok ) ,the
microcontroller analog pin A3 is high then microcontroller sends the signal to the motor driver
that to steps the elevation and azimuth’s stepper motor to find the exact position of the satellite
dish depends on the angle which is defined on the microcontroller.

Figure 4.5 Arab Sat condition of simulation result


Bader Sat Condition
When the first pushbutton pressed(next), for the fourth time, the microcontroller analog pin A0 is
HIGH and the microcontroller activates the LCD that to display the “SatName=NileSatAzi=150
degree Ele=90 degree”. After display the text on the LCD press the third pushbutton(ok ) ,the
microcontroller analog pin A3 is high then microcontroller sends the signal to the motor driver
that to steps the elevation and azimuth’s stepper motor to find the exact position of the satellite
dish depends on the angle which is defined on the microcontroller.

Figure 4.6 Bader Sat condition of simulation result


Hotbird Sat Condition
When the first pushbutton pressed(next), for the last time, the microcontroller analog pin A0 is
HIGH and the microcontroller activates the LCD that to display the “SatName=NileSatAzi=178
degree Ele=67 degree”. After display the text on the LCD press the third pushbutton(ok ) ,the
microcontroller analog pin A3 is high then microcontroller sends the signal to the motor driver
that to steps the elevation and azimuth’s stepper motor to find the exact position of the satellite
dish depends on the angle which is defined on the microcontroller.

Figure; 4.7 Hotbird Sat condition of simulation result


CHAPTER FIVE

CONCLUSION AND RECOMMENDATION

5.1 CONCLUSION
Thus the “ARDUINO BASED AUTOMATIC DISH POSITIONING SYSTEM” has been
designed successfully. It has been developed by integrated features of all the hardware
components used. Presence of every module has been reasoned out and placed carefully, thus
contributing to the best working of the unit. The system has been tested to function
automatically. The pushbutton takes the input from the users and sends the signal of the selected
satellite channel to the microcontroller. And according to the selected satellite channel from the
user both Azimuth and Elevation’s Stepper motors steps. Thus, the functionality of the entire
system has been tested thoroughly and it is said to function successfully. Auto-based Dish
positioning system serves as a reliable, efficient and time consuming system for receive the
Broadcasting Channel. Automatic dish positioning system is not only allows user to reduce the
human power, but it also allows user to see accurate changes in it. It is slightly cheaper in cost
and consumes less power.

5.2 RECOMMENDATION

We have designed an AUTOMATIC DISH POSITIONING SYSTEM but in our design there are
some parts which must be done in future. These are:

 We have used Push button to take the input from the user but we can do much better by
using the Infrared ray remote (IR) to have a wide variety of satellite channel choice and
to maximize the efficiency of the system.
 The Automatic dish positioning system we have designed uses an open loop control
system, by adding some sensors like Reed sensor, magnetic sensor to senses the current
position of the Satellite dish and tells the Microcontroller to adjust the Satellite dish very
precisely. So using the closed loop control system makes the system very stable and
efficient.

.
REFERENCES
[1]Feder, Barnaby J. (15 November 2002). "Taylor Howard, 70, Pioneer In Satellite TV for the
Home". New York Times.Retrieved 19 July 2014.

[2]Somerfield, Harry (30 September 1990). "Satellite dishes getting smaller, sharper in future".
The Tuscaloosa News(Tuscaloosa, Alabama) Retrieved 7 August 2014.

[3]Brooks, Andree (10 October 1993). "Old satellite dish restrictions under fire new laws urged
for smaller models". The Baltimore Sun. Retrieved 1 July 2014.

[4] Giarrusso, Michael (28 July 1996). "Tiny Satellite Dishes Sprout in Rural Area".Los Angeles
Times (Los Angeles: Los Angeles Times). Retrieved 1 July 2014.

[5] https://www.sparkfun.com (Electronic components with datasheets). Accessed on January29,


2016

[6] https://www.engineersgarage.com/ 16 x 2 LCD Datasheet _ 16x2 Character LCD Module


PINOUT - EngineersGarage.html. Accessed on January29, 2016

[7]Liptak, Bela G. (2005).Instrument Engineers' Handbook: Process Control and Optimization.


CRC Press.p. 2464. ISBN 978-0-8493-1081-2

[8] "Push buttons and much more" thebuilderssupply.com. Retrieved 11 April 2013.

[9]https://www.wikipedia.com/ULN2003 Stepper Motor Driver - Elecrow.html .Accessed on


January29, 2016

[10]https://www.wikipedia.com Azimuth - Wikipedia, the free encyclopedia.htm.Accessed on


January29, 2016
APPENDIX: ARDUINO C CODE OF THE SYSTEM
#include <LiquidCrystal.h>

#include <Stepper.h>

#define TOTAL 5

const int stepsPerRevolution = 200;

const int stepsPerRevolution1 = 200;

// initialize the stepper library on pins 8 through 11:

Stepper myStepper(stepsPerRevolution, 0, 1, 2, 3);

Stepper myStepper1 (stepsPerRevolution, 4, 5, 6, 7);

int stepCount = 0;

int stepCount1 = 0; // number of steps the motor has taken

int show = -1;

int currentelv = 0;

int currentaz = 0;

int buttonpin1 = A0;

int buttonpin2 = A1;

int buttonpin3 = A2;

int stateold =LOW;

int currentstate = LOW;


int stateoldup =LOW;

int currentstateup = LOW;

int stateolddown =LOW;

int currentstatedown = LOW;

int stateoldreset =LOW;

int currentstatereset = LOW;

int stateoldmode=LOW;

int currentstatemode = LOW;

int stateoldok=LOW;

int currentstateok = LOW;

LiquidCrystal lcd(13, 12, 11,10, 9, 8);

struct details

String name;

int count2;

int count;

}emp[TOTAL]={{"EUTELSAT",81,186},

{"NILESAT",38,261},

{"ARABSAT",78,220},
{"BADER",90,150},

{"HOTBIRD",67,170}};

void setup() {

// put your setup code here, to run once:

pinMode(buttonpin1, INPUT);

pinMode(buttonpin2, INPUT);

pinMode(buttonpin3, INPUT);

lcd.begin(16, 4);

lcd.print("WELLCOME TO AUTOSATFINDER");

delay (5000);

lcd.clear();

lcd.setCursor(0,2);

lcd.print("PRESS NEXT");

int bounce (int x,int y){

int pinstate = digitalRead(y);

if(pinstate !=x){

delay(5);

pinstate = digitalRead(y);
}

return pinstate;

void loop() {

// put your main code here, to run repeatedly:

currentstateup = bounce(stateoldup,A0);

if(currentstateup ==HIGH && stateoldup ==LOW ){

if(show>=4){show=4;}

else { show++;}

upfun(show);

stateoldup = currentstateup;

currentstatedown =bounce(stateolddown,A1);

if(currentstatedown==HIGH && stateolddown ==LOW ){

if(show<1){show=0;}

else {show--;}

downfun(show);

stateolddown = currentstatedown;

currentstateok =bounce(stateoldok,A2);

if(currentstateok==HIGH && stateoldok==LOW ){


currentelv = emp[show].count2;

currentaz = emp[show].count;

postion(currentelv,currentaz);

currentpostion(show);

stateoldok = currentstateok;

void upfun(int x){

lcd.clear();

lcd.setCursor(0,0);

lcd.print("[BACK]");

lcd.setCursor(8,0);

lcd.print("[NEXT]");

lcd.setCursor(0,1);

lcd.print("satNAME = ");

lcd.print(emp[x].name);

lcd.setCursor(0,2);

lcd.print("Elev = ");

lcd.print(emp[x].count2);
lcd.setCursor(0,3);

lcd.print("Azi = ");

lcd.print(emp[x].count);

void downfun(int x){

lcd.clear();

lcd.setCursor(0,0);

lcd.print("[BACK]");

lcd.setCursor(8,0);

lcd.print("[NEXT]");

lcd.setCursor(0,1);

lcd.print("satNAME = ");

lcd.print(emp[x].name);

lcd.setCursor(0,2);

lcd.print("Elev = ");

lcd.print(emp[x].count2);

lcd.setCursor(0,3);

lcd.print("Azi = ");

lcd.print(emp[x].count);
}

void postion(int x,int y){

myStepper.step(x);

myStepper1.step (y);

void currentpostion(int x){

lcd.clear();

lcd.setCursor(0,0);

lcd.print("CURRENT POSTION");

lcd.setCursor(0,1);

lcd.print("SatName");

lcd.print(emp[x].name);

lcd.setCursor(0,2);

lcd.print("Elev");

lcd.print(emp[x].count2);

lcd.setCursor(0,3);

lcd.print("Azu");

lcd.print(emp[x].count);

Das könnte Ihnen auch gefallen