<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="de">
		<id>https://wiki.ardumower.de/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Unlogic</id>
		<title>www.wiki.ardumower.de - Benutzerbeiträge [de]</title>
		<link rel="self" type="application/atom+xml" href="https://wiki.ardumower.de/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Unlogic"/>
		<link rel="alternate" type="text/html" href="https://wiki.ardumower.de/index.php?title=Spezial:Beitr%C3%A4ge/Unlogic"/>
		<updated>2026-10-14T10:07:54Z</updated>
		<subtitle>Benutzerbeiträge</subtitle>
		<generator>MediaWiki 1.24.1</generator>

	<entry>
		<id>https://wiki.ardumower.de/index.php?title=Motor_driver_ru&amp;diff=2763</id>
		<title>Motor driver ru</title>
		<link rel="alternate" type="text/html" href="https://wiki.ardumower.de/index.php?title=Motor_driver_ru&amp;diff=2763"/>
				<updated>2015-08-30T14:18:44Z</updated>
		
		<summary type="html">&lt;p&gt;Unlogic: /* IBT-2 (BTS7960/BTN7960) */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Описание =&lt;br /&gt;
Ardumower's design uses two different types of motors (all motors can be purchased via the [https://www.marotronics.de/index.php?k=7 shop] [[File: shopping.png|link=https://www.marotronics.de/index.php?k=7]]):&lt;br /&gt;
* Two motors (with integrated gearing) for driving (wheel motors), and encoder (for distance, direction and speed control)&lt;br /&gt;
* One motor (with high rotation speed) for mowing (mower motor)&lt;br /&gt;
&lt;br /&gt;
To control a motor, it requires a 'motor driver'.&lt;br /&gt;
&lt;br /&gt;
= Voltages =&lt;br /&gt;
Although there exist 12V motors and 24V motors, as in all modern systems, the Ardumower uses 24V motors. The reason is as follows:&lt;br /&gt;
&lt;br /&gt;
Assuming that the motor consumes 50W, using 24V results to a motor current: 50W / 24V = 2A.&lt;br /&gt;
&lt;br /&gt;
Assuming that the motor consumes 50W, using 12V results to a motor current: 50W / 12V = 4A.&lt;br /&gt;
&lt;br /&gt;
The higher the current (A), the more problems arise:&lt;br /&gt;
&lt;br /&gt;
* The motor driver must be suitable for higher current (more expensive)&lt;br /&gt;
* The PCB traces need to be more thick (more expensive)&lt;br /&gt;
* The rechargable battery need to support higher current (more expensive)&lt;br /&gt;
&lt;br /&gt;
So, that's the reason why Ardumower is designed as a 24V system.&lt;br /&gt;
&lt;br /&gt;
= Wheel motors =&lt;br /&gt;
&amp;lt;gallery&amp;gt;&lt;br /&gt;
  File: ardumower_motor.jpg | Ardumower gear motor with encoder (8mm diameter, 5900 rpm motor, 0.055 Nm, gear ratio 1/212, output torque 2.45Nm, output rpm 31)&lt;br /&gt;
  File: wheel_motor_diagram.png | Ardumower gear motor curve (motor only)&lt;br /&gt;
  File:decrease_motor_noise.png | Decrease motor noise&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
The two left and right gear motors are controlled independently (aka 'differential driving') to:&lt;br /&gt;
&lt;br /&gt;
* drive the robot forward/backward&lt;br /&gt;
* steer the robot left/right&lt;br /&gt;
&lt;br /&gt;
The Ardumower wheel motor features:&lt;br /&gt;
* A rotation speed up to 31 rpm allows to move the robot at sufficient speed (at up to meter/sec = 31rpm/60 * PI * 0.25m  = 0.4m/sec using 250mm diameter wheels)&lt;br /&gt;
* A high torque (2.45Nm) guarantees that the robot can climb small hills as well (with 2 motors, 0.125 radius wheel, 31rpm = 0.4m/s, acceleration = 0.2 ( 1/2 of nomeinal speed) up to 14 degree) [http://www.robotshop.com/blog/en/drive-motor-sizing-tool-9698 see calculator]&lt;br /&gt;
* Integrated encoders, so it can measure the rotation speed, the distance and the direction (see [[Odometry]] for more information) - Encoders are REQUIRED for Ardumower software.&lt;br /&gt;
* 24V  (load current ~1A)&lt;br /&gt;
&lt;br /&gt;
= Motor driver =&lt;br /&gt;
A motor driver is a circuit that allows current to flow either one direction or the opposite direction through the motor - depending on wether the motor should turn forward or backward (so called 'H-bridge'). There are many motor drivers available as ready-circuit boards, some can even control two motors  (Dual H-Bridge) - if you connect two of their H-bridges in parallel, the maximum motor current can be increased.&lt;br /&gt;
&lt;br /&gt;
If the direction of the motor does not need to be controlled, (e.g. for the blades), you do not need an H-bridge, but instead a simple 'switch' (e.g. MOSFET-transistor-circuit).&lt;br /&gt;
&lt;br /&gt;
The motor driver is connected through control signals to the Arduino. Example:&lt;br /&gt;
&lt;br /&gt;
  Arduino Digital Pin  —&amp;gt;  MOTOR-Direction Pin (DIR)&lt;br /&gt;
  Arduino PWM Pin      —&amp;gt;  MOTOR-Speed Pin (PWM)&lt;br /&gt;
  Arduino Analog Pin   &amp;lt;—  MOTOR-Current Sensor Pin&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
One pin controls the direction (forward/backward), the other pin controls the speed. One analog input pin is connected to the current sensor. The current sensor module (ACS712-05A) is connected in series with the motor.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery&amp;gt;&lt;br /&gt;
File:Ardumower_motor_driver_circuit.png | NOTE: only for demonstration! See real [http://wiki.ardumower.de/index.php?title=Ardumower_PCB schematics] for concrete wiring&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== PWM frequency ==&lt;br /&gt;
The speed of the motor is controlled by a PWM duty signal. We use the Arduino default PWM frequency (490 Hz) to control the motor drivers.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery&amp;gt;&lt;br /&gt;
File: Arduino_pwm.png | Arduino PWM duty signal&lt;br /&gt;
File: Pwm_490hz.png | PWM 490 Hz: odometry ticks, sense (current) &lt;br /&gt;
File: Pwm_3khz.png | PWM 3.9 Khz: odometry ticks, sense (current) &lt;br /&gt;
File: Pwm_20khz.png | PWM 20 Khz: odometry ticks, sense (current) &lt;br /&gt;
File: Pwm_31khz.png | PWM 31 Khz: odometry ticks, sense (current) &lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Popular modules ==&lt;br /&gt;
=== MC33926 (recommended) ===&lt;br /&gt;
&lt;br /&gt;
Особенности: up to 3A with integrated current sensor and thermal shut-down protection, for all kind of robot mowers) &lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery&amp;gt;&lt;br /&gt;
File:Mc33926.jpg | pinout&lt;br /&gt;
File:Mc33926_example.jpg | jumpers&lt;br /&gt;
File:MC33926_schematics.jpg | schematics&lt;br /&gt;
File:Mc33926_current_limiter.jpg | automatic current limiter&lt;br /&gt;
File:Motor_pwm_50_percent_transients.jpg | Motor start 50% PWM transients&lt;br /&gt;
File:driver_hw_protection.png | Peak/EMF protection&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''&lt;br /&gt;
 M1_FB     --- pinMotorLeftSense A1&lt;br /&gt;
 M1_SF     --- pinMotorLeftFault 25&lt;br /&gt;
 M1_PWM_D1 --- connect with jumper to GND&lt;br /&gt;
 M1_PWM_D2 --- connect with jumper to VDD&lt;br /&gt;
 M1_IN1    --- pinMotorLeftPWM 5  &lt;br /&gt;
 M1_IN2    --- pinMotorLeftDir 31&lt;br /&gt;
 EN        --- pinMotorEnable  37&lt;br /&gt;
 M2_FB     --- pinMotorRightSense A0&lt;br /&gt;
 M2_SF     --- pinMotorRightFault 27&lt;br /&gt;
 M2_PWM_D1 --- connect with jumper to GND&lt;br /&gt;
 M2_PWM_D2 --- connect with jumper to VDD&lt;br /&gt;
 M2_IN1    --- pinMotorRightPWM  3 &lt;br /&gt;
 M2_IN2    --- pinMotorRightDir 33&lt;br /&gt;
 EN        --- pinMotorEnable  37&lt;br /&gt;
 VDD       --- Arduino 5V&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== IBT-2 (BTS7960/BTN7960) ===&lt;br /&gt;
&amp;lt;gallery&amp;gt;&lt;br /&gt;
  File: BTS7960B_motor_driver.jpg | Модуль BTS7960B&lt;br /&gt;
  File: BTS7960B_motor_driver1.jpg | Модуль BTS7960B&lt;br /&gt;
  File: BTS7960B_motor_driver2.jpg | Модуль BTS7960B&lt;br /&gt;
  File: BTS7960B_motor_driver_sch.jpg | Схема модуля BTS7960B&lt;br /&gt;
  File: BTS7960B_HBridgemontage-635056137829375000.jpg | Схема подключения&lt;br /&gt;
  File: IBT-2-Input-Ports.jpg | Схема подключения&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Особенности: 5.5-27V, 43A (цена 9 USD)&lt;br /&gt;
&lt;br /&gt;
На один двигатель требуется один модуль.&lt;br /&gt;
&lt;br /&gt;
Pinout:&lt;br /&gt;
&lt;br /&gt;
 1 RPWM Forward level or PWM signal input, active HIGH &lt;br /&gt;
 2 LPWM Reverse level or PWM signal input, active HIGH&lt;br /&gt;
 3 R_EN Forward drive enable input, HIGH enable, LOW Close&lt;br /&gt;
 4 L_EN Reverse drive enable input, HIGH enable, LOW Close&lt;br /&gt;
 5 R_IS Forward drive - side current alarm output&lt;br /&gt;
 6 L_IS Reverse drive - side current alarm output&lt;br /&gt;
 7 VCC 5V power input from Arduino board.&lt;br /&gt;
 8 GND Ground.&lt;br /&gt;
&lt;br /&gt;
[http://www.fut-electronics.com/wp-content/plugins/fe_downloads/Uploads/30A%20_Motor_Driver.pdf пример подключения 1]&lt;br /&gt;
[http://www.instructables.com/id/Motor-Driver-BTS7960-43A/?ALLSTEPS пример подключения 2]&lt;br /&gt;
[http://www.hessmer.org/blog/2013/12/28/ibt-2-h-bridge-with-arduino/ смотри комментарий 11]&lt;br /&gt;
&lt;br /&gt;
 BTS7960B GND      --- GND&lt;br /&gt;
 BTS7960B VCC      --- Arduino 5V&lt;br /&gt;
 BTS7960B R_IS     --- нет&lt;br /&gt;
 BTS7960B L_IS     --- нет&lt;br /&gt;
 BTS7960B R_EN     --- Arduino MOTOR_DIR pinMotorRightDir 33&lt;br /&gt;
 BTS7960B L_EN     --- Arduino MOTOR_DIR pinMotorLeftDir 31&lt;br /&gt;
 BTS7960B R_PWM    --- Arduino MOTOR_PWM pinMotorRightPWM  3 &lt;br /&gt;
 BTS7960B L_PWM    --- Arduino MOTOR_PWM pinMotorLeftPWM 5 &lt;br /&gt;
 BTS7960B MOTOR(+) --- motor(+)&lt;br /&gt;
 BTS7960B MOTOR(-) --- motor(-)&lt;br /&gt;
 BTS7960B POWER(+) --- battery(+)&lt;br /&gt;
 BTS7960B POWER(-) --- battery(-)&lt;br /&gt;
&lt;br /&gt;
=== L6201P ===&lt;br /&gt;
&amp;lt;gallery&amp;gt;&lt;br /&gt;
  File: L6201P_motor_driver.jpg | L6201P PCB&lt;br /&gt;
  File: L6201p.png | L6201P datasheet&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Особенности: 48V, 4A&lt;br /&gt;
&lt;br /&gt;
 B+     power supply output voltage equal to the power connector&lt;br /&gt;
 GND    GND&lt;br /&gt;
 EN     driver enable&lt;br /&gt;
 RPWM   forward PWM signal, active HIGH&lt;br /&gt;
 LPWM   reverse PWM signal, active HIGH&lt;br /&gt;
 CT     current signal output&lt;br /&gt;
 VT     voltage signal output&lt;br /&gt;
&lt;br /&gt;
 Forward   EN=1, RPWM=PWM, LPWM=0&lt;br /&gt;
 Reverse   EN=1, RPWM=0,   LPWM=PWM  (also possible?   EN=1, RPWM=255-PWM, LPWM=1  =&amp;gt; needs to be verified!)&lt;br /&gt;
 Brake     EN=1, RPWM=0,   LPWM=0&lt;br /&gt;
 Not brake EN=0, RPWM=x,   LPWM=x&lt;br /&gt;
 Note: 1=High level (3.3-5v), 0=Low level (0V or GND)&lt;br /&gt;
&lt;br /&gt;
=== L9958 ===&lt;br /&gt;
Особенности: Arduino 240W H-bridge Motor Driver Board - SX8847, up to 8A &lt;br /&gt;
&lt;br /&gt;
Note that this module has an on-board [http://en.wikipedia.org/wiki/78xx linear voltage regulator], which converts the input POWER (typically 24 or 12V) to 5V. Some modules do this with a single voltage regulator (chip VR1 on the module), or in a two-staged approach (VR1 and U2). &lt;br /&gt;
&lt;br /&gt;
Converting 24V to 5V with a linear voltage regulator is very inefficient (current in = current out, so if you need 100mA at 5V, the linear voltage regulator requires 100mA at 24V, so you loose 1.9W in this module). Therefore, it is recommended to disconnect the linear voltage regulator from the board, and use the 5V from the switched mode power supply. &lt;br /&gt;
&lt;br /&gt;
 L9958 GND---GND&lt;br /&gt;
 L9958 VCC---Arduino 5V&lt;br /&gt;
 L9958 EN---Arduino 5V&lt;br /&gt;
 L9958 DI---GND&lt;br /&gt;
 L9958 DIR---Arduino MOTOR_DIR&lt;br /&gt;
 L9958 PWM---Arduino MOTOR_PWM&lt;br /&gt;
 L9958 MOTOR(+)---motor(+)&lt;br /&gt;
 L9958 MOTOR(-)---motor(-)&lt;br /&gt;
 L9958 POWER(+)---battery(+)&lt;br /&gt;
 L9958 POWER(-)---battery(-)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery&amp;gt;&lt;br /&gt;
  File: Motor_driver_L9958.jpg&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== L298N ===&lt;br /&gt;
Особенности: up to 4A &lt;br /&gt;
Notice: When using a L298N-motor driver, both H-bridges (2A) should be connected in parallel, so that both bridges drive a single motor (max. 4A):&lt;br /&gt;
&lt;br /&gt;
Connect in parallel:&lt;br /&gt;
 IN1 with IN4&lt;br /&gt;
 IN2 with IN3&lt;br /&gt;
 OUT1 with OUT4&lt;br /&gt;
 OUT2 with OUT3&lt;br /&gt;
(Do NOT disconnect the SENSE-lines, except when you want to measure current by a 'shunt' resistor).&lt;br /&gt;
&lt;br /&gt;
Make sure there is a jumper on both ENA and ENB. Also, make sure there is a jumper on S1.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery&amp;gt;&lt;br /&gt;
File: Motordriver_l298n.JPG | driver &lt;br /&gt;
File: L298driver.jpg | double current&lt;br /&gt;
File: L298N_schematics.jpg | schematics&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= Mower motor and driver =&lt;br /&gt;
&amp;lt;gallery&amp;gt;&lt;br /&gt;
File: ardumower_mower_motor.jpg | Ardumower mower motor&lt;br /&gt;
File: Mower_motor_curve.png | Ardumower mower motor curve&lt;br /&gt;
File: Mower2_start_current.png | Mower start current&lt;br /&gt;
File: Mower4_blocked_500ms_detect_5s_wait.png | Mower blocked, 500ms detection (max), waittime: 5sec (min)&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
The Ardumower mower motor features:&lt;br /&gt;
* Fast enough to cut the lawn (3150 rpm)&lt;br /&gt;
* Enough torque (140 mNm / 46 W)&lt;br /&gt;
* Quiet mowing (you cannot hear it)&lt;br /&gt;
* 24V, load current ~1.0A  (L=2.8mH, R=1.9ohm)&lt;br /&gt;
&lt;br /&gt;
For a the mowing motor, a MOSFET circuit is used. The MOSFET transistor IRLIZ44N (alternatives: IRF1404, IRL540N, RFP30N06LE, FQP30N06L) can already switch a current of 30A at the Arduino 5V control signal (N-LogL). The 10K resistor pulls down to ground when the Arduino starts. The 180 Ohm resistor limits the current at the Gate caused by level switches to about 30mA. The diode (MBR1045) protects  the circuit against current caused by motor induction. A current sensor module (ACS712-30A) is connected in series with the motor.&lt;br /&gt;
&lt;br /&gt;
[[File:warning.png]]'''Security note: For security reasons, always remove mower blades in your first tests!'''&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery&amp;gt;&lt;br /&gt;
File: Ardumower_mower_motor_circuit.png | NOTE: only for demonstration! See real [http://wiki.ardumower.de/index.php?title=Ardumower_PCB schematics] for concrete wiring&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= Choosing a driver =&lt;br /&gt;
&lt;br /&gt;
When purchasing a motor driver, consider...&lt;br /&gt;
* max. thermal load (short-circuit current)&lt;br /&gt;
* price&lt;br /&gt;
&lt;br /&gt;
= Starting current =&lt;br /&gt;
Here are some measurements of the Ardumower motor's starting current (peak):&lt;br /&gt;
&lt;br /&gt;
Starting current:&lt;br /&gt;
* Gear motor: 15A (starting current peak)&lt;br /&gt;
* Mowing motor: 20A (starting current peak)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery&amp;gt;&lt;br /&gt;
File: Messung_einschalt_spitzen.jpg | Gear motor start current (peak)&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= Short-circuit current =&lt;br /&gt;
To not damage the motor driver on the first run, find out the maximum current that can flow through your motors. In other words, find out the 'short-circuit' current. Typical measurement installation:&lt;br /&gt;
&lt;br /&gt;
Battery === Ampere meter === Motor&lt;br /&gt;
&lt;br /&gt;
The Amperemeter (e.g. model making) should be able to measure the maximum current (e.g. 30A). The motor to be measured is mechanically blocked (so it cannot rotate).&lt;br /&gt;
&lt;br /&gt;
'''Warning'''&lt;br /&gt;
&lt;br /&gt;
* always remove blades&lt;br /&gt;
* only connect battery for a short period (1-5 seconds)&lt;br /&gt;
* always use cables with sufficient wire cross section&lt;br /&gt;
&lt;br /&gt;
Example measurement:&lt;br /&gt;
&lt;br /&gt;
* Rotenbach SPM08-320&lt;br /&gt;
** Wheel motor: 8A&lt;br /&gt;
** Mowing motor:&lt;br /&gt;
&lt;br /&gt;
* Ambrogio L50&lt;br /&gt;
** Wheel motor: 4,5A&lt;br /&gt;
** Mowing motor: 22A&lt;br /&gt;
&lt;br /&gt;
* Tianchen TC-G158&lt;br /&gt;
** Wheel motor: 5,4A&lt;br /&gt;
** Mowing motor: 16A (both 32A)&lt;br /&gt;
&lt;br /&gt;
The measured current will only flow in 'worst-case' scenarios, which means when the motor starts or when it is blocked and it will only flow for a short time  (as your battery might not deliver the high current constantly, and so current and voltage will break down).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Current sensor =&lt;br /&gt;
To detect certain conditions (robot drives against obstacle, motor blocks etc.), the motor current should be monitored constantly. There are two approaches for sensing current.&lt;br /&gt;
&lt;br /&gt;
== Approach &amp;quot;Hall sensor module&amp;quot; ==&lt;br /&gt;
This is the recommended approach for sensing current. These current sensor modules are available for different current ranges.&lt;br /&gt;
&lt;br /&gt;
* ACS712ELC-05A (185mV/A, max. 5A)&lt;br /&gt;
* ACS712ELC-20A (100mV/A, max. 20A)&lt;br /&gt;
* ACS712ELC-30A (66mV/A, max. 30A)&lt;br /&gt;
* The lower the range, the more precise the measurement.&lt;br /&gt;
&lt;br /&gt;
== Approach &amp;quot;Shunt resistor (circuit)&amp;quot; ==&lt;br /&gt;
The current flows across a very small resistor (0.5 Ohm) and the voltage drop is measured&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery&amp;gt;&lt;br /&gt;
File: L298n_module_circuit.jpg &lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=Further links=&lt;br /&gt;
#[http://www.ardumower.de/index.php/en/forum/maehwerk/74-10a-pwm-controller-modul-fuer-den-arduino 10A PWM controller module modification]&lt;/div&gt;</summary>
		<author><name>Unlogic</name></author>	</entry>

	<entry>
		<id>https://wiki.ardumower.de/index.php?title=Motor_driver_ru&amp;diff=2762</id>
		<title>Motor driver ru</title>
		<link rel="alternate" type="text/html" href="https://wiki.ardumower.de/index.php?title=Motor_driver_ru&amp;diff=2762"/>
				<updated>2015-08-30T14:15:45Z</updated>
		
		<summary type="html">&lt;p&gt;Unlogic: /* IBT-2 (BTS7960/BTN7960) */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Описание =&lt;br /&gt;
Ardumower's design uses two different types of motors (all motors can be purchased via the [https://www.marotronics.de/index.php?k=7 shop] [[File: shopping.png|link=https://www.marotronics.de/index.php?k=7]]):&lt;br /&gt;
* Two motors (with integrated gearing) for driving (wheel motors), and encoder (for distance, direction and speed control)&lt;br /&gt;
* One motor (with high rotation speed) for mowing (mower motor)&lt;br /&gt;
&lt;br /&gt;
To control a motor, it requires a 'motor driver'.&lt;br /&gt;
&lt;br /&gt;
= Voltages =&lt;br /&gt;
Although there exist 12V motors and 24V motors, as in all modern systems, the Ardumower uses 24V motors. The reason is as follows:&lt;br /&gt;
&lt;br /&gt;
Assuming that the motor consumes 50W, using 24V results to a motor current: 50W / 24V = 2A.&lt;br /&gt;
&lt;br /&gt;
Assuming that the motor consumes 50W, using 12V results to a motor current: 50W / 12V = 4A.&lt;br /&gt;
&lt;br /&gt;
The higher the current (A), the more problems arise:&lt;br /&gt;
&lt;br /&gt;
* The motor driver must be suitable for higher current (more expensive)&lt;br /&gt;
* The PCB traces need to be more thick (more expensive)&lt;br /&gt;
* The rechargable battery need to support higher current (more expensive)&lt;br /&gt;
&lt;br /&gt;
So, that's the reason why Ardumower is designed as a 24V system.&lt;br /&gt;
&lt;br /&gt;
= Wheel motors =&lt;br /&gt;
&amp;lt;gallery&amp;gt;&lt;br /&gt;
  File: ardumower_motor.jpg | Ardumower gear motor with encoder (8mm diameter, 5900 rpm motor, 0.055 Nm, gear ratio 1/212, output torque 2.45Nm, output rpm 31)&lt;br /&gt;
  File: wheel_motor_diagram.png | Ardumower gear motor curve (motor only)&lt;br /&gt;
  File:decrease_motor_noise.png | Decrease motor noise&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
The two left and right gear motors are controlled independently (aka 'differential driving') to:&lt;br /&gt;
&lt;br /&gt;
* drive the robot forward/backward&lt;br /&gt;
* steer the robot left/right&lt;br /&gt;
&lt;br /&gt;
The Ardumower wheel motor features:&lt;br /&gt;
* A rotation speed up to 31 rpm allows to move the robot at sufficient speed (at up to meter/sec = 31rpm/60 * PI * 0.25m  = 0.4m/sec using 250mm diameter wheels)&lt;br /&gt;
* A high torque (2.45Nm) guarantees that the robot can climb small hills as well (with 2 motors, 0.125 radius wheel, 31rpm = 0.4m/s, acceleration = 0.2 ( 1/2 of nomeinal speed) up to 14 degree) [http://www.robotshop.com/blog/en/drive-motor-sizing-tool-9698 see calculator]&lt;br /&gt;
* Integrated encoders, so it can measure the rotation speed, the distance and the direction (see [[Odometry]] for more information) - Encoders are REQUIRED for Ardumower software.&lt;br /&gt;
* 24V  (load current ~1A)&lt;br /&gt;
&lt;br /&gt;
= Motor driver =&lt;br /&gt;
A motor driver is a circuit that allows current to flow either one direction or the opposite direction through the motor - depending on wether the motor should turn forward or backward (so called 'H-bridge'). There are many motor drivers available as ready-circuit boards, some can even control two motors  (Dual H-Bridge) - if you connect two of their H-bridges in parallel, the maximum motor current can be increased.&lt;br /&gt;
&lt;br /&gt;
If the direction of the motor does not need to be controlled, (e.g. for the blades), you do not need an H-bridge, but instead a simple 'switch' (e.g. MOSFET-transistor-circuit).&lt;br /&gt;
&lt;br /&gt;
The motor driver is connected through control signals to the Arduino. Example:&lt;br /&gt;
&lt;br /&gt;
  Arduino Digital Pin  —&amp;gt;  MOTOR-Direction Pin (DIR)&lt;br /&gt;
  Arduino PWM Pin      —&amp;gt;  MOTOR-Speed Pin (PWM)&lt;br /&gt;
  Arduino Analog Pin   &amp;lt;—  MOTOR-Current Sensor Pin&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
One pin controls the direction (forward/backward), the other pin controls the speed. One analog input pin is connected to the current sensor. The current sensor module (ACS712-05A) is connected in series with the motor.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery&amp;gt;&lt;br /&gt;
File:Ardumower_motor_driver_circuit.png | NOTE: only for demonstration! See real [http://wiki.ardumower.de/index.php?title=Ardumower_PCB schematics] for concrete wiring&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== PWM frequency ==&lt;br /&gt;
The speed of the motor is controlled by a PWM duty signal. We use the Arduino default PWM frequency (490 Hz) to control the motor drivers.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery&amp;gt;&lt;br /&gt;
File: Arduino_pwm.png | Arduino PWM duty signal&lt;br /&gt;
File: Pwm_490hz.png | PWM 490 Hz: odometry ticks, sense (current) &lt;br /&gt;
File: Pwm_3khz.png | PWM 3.9 Khz: odometry ticks, sense (current) &lt;br /&gt;
File: Pwm_20khz.png | PWM 20 Khz: odometry ticks, sense (current) &lt;br /&gt;
File: Pwm_31khz.png | PWM 31 Khz: odometry ticks, sense (current) &lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Popular modules ==&lt;br /&gt;
=== MC33926 (recommended) ===&lt;br /&gt;
&lt;br /&gt;
Особенности: up to 3A with integrated current sensor and thermal shut-down protection, for all kind of robot mowers) &lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery&amp;gt;&lt;br /&gt;
File:Mc33926.jpg | pinout&lt;br /&gt;
File:Mc33926_example.jpg | jumpers&lt;br /&gt;
File:MC33926_schematics.jpg | schematics&lt;br /&gt;
File:Mc33926_current_limiter.jpg | automatic current limiter&lt;br /&gt;
File:Motor_pwm_50_percent_transients.jpg | Motor start 50% PWM transients&lt;br /&gt;
File:driver_hw_protection.png | Peak/EMF protection&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''&lt;br /&gt;
 M1_FB     --- pinMotorLeftSense A1&lt;br /&gt;
 M1_SF     --- pinMotorLeftFault 25&lt;br /&gt;
 M1_PWM_D1 --- connect with jumper to GND&lt;br /&gt;
 M1_PWM_D2 --- connect with jumper to VDD&lt;br /&gt;
 M1_IN1    --- pinMotorLeftPWM 5  &lt;br /&gt;
 M1_IN2    --- pinMotorLeftDir 31&lt;br /&gt;
 EN        --- pinMotorEnable  37&lt;br /&gt;
 M2_FB     --- pinMotorRightSense A0&lt;br /&gt;
 M2_SF     --- pinMotorRightFault 27&lt;br /&gt;
 M2_PWM_D1 --- connect with jumper to GND&lt;br /&gt;
 M2_PWM_D2 --- connect with jumper to VDD&lt;br /&gt;
 M2_IN1    --- pinMotorRightPWM  3 &lt;br /&gt;
 M2_IN2    --- pinMotorRightDir 33&lt;br /&gt;
 EN        --- pinMotorEnable  37&lt;br /&gt;
 VDD       --- Arduino 5V&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== IBT-2 (BTS7960/BTN7960) ===&lt;br /&gt;
&amp;lt;gallery&amp;gt;&lt;br /&gt;
  File: BTS7960B_motor_driver.jpg | Модуль BTS7960B&lt;br /&gt;
  File: BTS7960B_motor_driver1.jpg | Модуль BTS7960B&lt;br /&gt;
  File: BTS7960B_motor_driver2.jpg | Модуль BTS7960B&lt;br /&gt;
  File: BTS7960B_motor_driver_sch.jpg | Схема модуля BTS7960B&lt;br /&gt;
  File: BTS7960B_HBridgemontage-635056137829375000.jpg | Схема подключения&lt;br /&gt;
  File: IBT-2-Input-Ports.jpg | Схема подключения&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Особенности: 5.5-27V, 43A (цена 9 USD)&lt;br /&gt;
&lt;br /&gt;
На один двигатель требуется один модуль.&lt;br /&gt;
&lt;br /&gt;
Pinout:&lt;br /&gt;
&lt;br /&gt;
 1 RPWM Forward level or PWM signal input, active HIGH &lt;br /&gt;
 2 LPWM Reverse level or PWM signal input, active HIGH&lt;br /&gt;
 3 R_EN Forward drive enable input, HIGH enable, LOW Close&lt;br /&gt;
 4 L_EN Reverse drive enable input, HIGH enable, LOW Close&lt;br /&gt;
 5 R_IS Forward drive - side current alarm output&lt;br /&gt;
 6 L_IS Reverse drive - side current alarm output&lt;br /&gt;
 7 VCC 5V power input from Arduino board.&lt;br /&gt;
 8 GND Ground.&lt;br /&gt;
&lt;br /&gt;
[http://www.fut-electronics.com/wp-content/plugins/fe_downloads/Uploads/30A%20_Motor_Driver.pdf пример подключения 1]&lt;br /&gt;
[http://www.instructables.com/id/Motor-Driver-BTS7960-43A/?ALLSTEPS пример подключения 2]&lt;br /&gt;
&lt;br /&gt;
 BTS7960B GND      --- GND&lt;br /&gt;
 BTS7960B VCC      --- Arduino 5V&lt;br /&gt;
 BTS7960B R_IS     --- нет&lt;br /&gt;
 BTS7960B L_IS     --- нет&lt;br /&gt;
 BTS7960B R_EN     --- Arduino MOTOR_DIR pinMotorRightDir 33&lt;br /&gt;
 BTS7960B L_EN     --- Arduino MOTOR_DIR pinMotorLeftDir 31&lt;br /&gt;
 BTS7960B R_PWM    --- Arduino MOTOR_PWM pinMotorRightPWM  3 &lt;br /&gt;
 BTS7960B L_PWM    --- Arduino MOTOR_PWM pinMotorLeftPWM 5 &lt;br /&gt;
 BTS7960B MOTOR(+) --- motor(+)&lt;br /&gt;
 BTS7960B MOTOR(-) --- motor(-)&lt;br /&gt;
 BTS7960B POWER(+) --- battery(+)&lt;br /&gt;
 BTS7960B POWER(-) --- battery(-)&lt;br /&gt;
&lt;br /&gt;
=== L6201P ===&lt;br /&gt;
&amp;lt;gallery&amp;gt;&lt;br /&gt;
  File: L6201P_motor_driver.jpg | L6201P PCB&lt;br /&gt;
  File: L6201p.png | L6201P datasheet&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Особенности: 48V, 4A&lt;br /&gt;
&lt;br /&gt;
 B+     power supply output voltage equal to the power connector&lt;br /&gt;
 GND    GND&lt;br /&gt;
 EN     driver enable&lt;br /&gt;
 RPWM   forward PWM signal, active HIGH&lt;br /&gt;
 LPWM   reverse PWM signal, active HIGH&lt;br /&gt;
 CT     current signal output&lt;br /&gt;
 VT     voltage signal output&lt;br /&gt;
&lt;br /&gt;
 Forward   EN=1, RPWM=PWM, LPWM=0&lt;br /&gt;
 Reverse   EN=1, RPWM=0,   LPWM=PWM  (also possible?   EN=1, RPWM=255-PWM, LPWM=1  =&amp;gt; needs to be verified!)&lt;br /&gt;
 Brake     EN=1, RPWM=0,   LPWM=0&lt;br /&gt;
 Not brake EN=0, RPWM=x,   LPWM=x&lt;br /&gt;
 Note: 1=High level (3.3-5v), 0=Low level (0V or GND)&lt;br /&gt;
&lt;br /&gt;
=== L9958 ===&lt;br /&gt;
Особенности: Arduino 240W H-bridge Motor Driver Board - SX8847, up to 8A &lt;br /&gt;
&lt;br /&gt;
Note that this module has an on-board [http://en.wikipedia.org/wiki/78xx linear voltage regulator], which converts the input POWER (typically 24 or 12V) to 5V. Some modules do this with a single voltage regulator (chip VR1 on the module), or in a two-staged approach (VR1 and U2). &lt;br /&gt;
&lt;br /&gt;
Converting 24V to 5V with a linear voltage regulator is very inefficient (current in = current out, so if you need 100mA at 5V, the linear voltage regulator requires 100mA at 24V, so you loose 1.9W in this module). Therefore, it is recommended to disconnect the linear voltage regulator from the board, and use the 5V from the switched mode power supply. &lt;br /&gt;
&lt;br /&gt;
 L9958 GND---GND&lt;br /&gt;
 L9958 VCC---Arduino 5V&lt;br /&gt;
 L9958 EN---Arduino 5V&lt;br /&gt;
 L9958 DI---GND&lt;br /&gt;
 L9958 DIR---Arduino MOTOR_DIR&lt;br /&gt;
 L9958 PWM---Arduino MOTOR_PWM&lt;br /&gt;
 L9958 MOTOR(+)---motor(+)&lt;br /&gt;
 L9958 MOTOR(-)---motor(-)&lt;br /&gt;
 L9958 POWER(+)---battery(+)&lt;br /&gt;
 L9958 POWER(-)---battery(-)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery&amp;gt;&lt;br /&gt;
  File: Motor_driver_L9958.jpg&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== L298N ===&lt;br /&gt;
Особенности: up to 4A &lt;br /&gt;
Notice: When using a L298N-motor driver, both H-bridges (2A) should be connected in parallel, so that both bridges drive a single motor (max. 4A):&lt;br /&gt;
&lt;br /&gt;
Connect in parallel:&lt;br /&gt;
 IN1 with IN4&lt;br /&gt;
 IN2 with IN3&lt;br /&gt;
 OUT1 with OUT4&lt;br /&gt;
 OUT2 with OUT3&lt;br /&gt;
(Do NOT disconnect the SENSE-lines, except when you want to measure current by a 'shunt' resistor).&lt;br /&gt;
&lt;br /&gt;
Make sure there is a jumper on both ENA and ENB. Also, make sure there is a jumper on S1.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery&amp;gt;&lt;br /&gt;
File: Motordriver_l298n.JPG | driver &lt;br /&gt;
File: L298driver.jpg | double current&lt;br /&gt;
File: L298N_schematics.jpg | schematics&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= Mower motor and driver =&lt;br /&gt;
&amp;lt;gallery&amp;gt;&lt;br /&gt;
File: ardumower_mower_motor.jpg | Ardumower mower motor&lt;br /&gt;
File: Mower_motor_curve.png | Ardumower mower motor curve&lt;br /&gt;
File: Mower2_start_current.png | Mower start current&lt;br /&gt;
File: Mower4_blocked_500ms_detect_5s_wait.png | Mower blocked, 500ms detection (max), waittime: 5sec (min)&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
The Ardumower mower motor features:&lt;br /&gt;
* Fast enough to cut the lawn (3150 rpm)&lt;br /&gt;
* Enough torque (140 mNm / 46 W)&lt;br /&gt;
* Quiet mowing (you cannot hear it)&lt;br /&gt;
* 24V, load current ~1.0A  (L=2.8mH, R=1.9ohm)&lt;br /&gt;
&lt;br /&gt;
For a the mowing motor, a MOSFET circuit is used. The MOSFET transistor IRLIZ44N (alternatives: IRF1404, IRL540N, RFP30N06LE, FQP30N06L) can already switch a current of 30A at the Arduino 5V control signal (N-LogL). The 10K resistor pulls down to ground when the Arduino starts. The 180 Ohm resistor limits the current at the Gate caused by level switches to about 30mA. The diode (MBR1045) protects  the circuit against current caused by motor induction. A current sensor module (ACS712-30A) is connected in series with the motor.&lt;br /&gt;
&lt;br /&gt;
[[File:warning.png]]'''Security note: For security reasons, always remove mower blades in your first tests!'''&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery&amp;gt;&lt;br /&gt;
File: Ardumower_mower_motor_circuit.png | NOTE: only for demonstration! See real [http://wiki.ardumower.de/index.php?title=Ardumower_PCB schematics] for concrete wiring&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= Choosing a driver =&lt;br /&gt;
&lt;br /&gt;
When purchasing a motor driver, consider...&lt;br /&gt;
* max. thermal load (short-circuit current)&lt;br /&gt;
* price&lt;br /&gt;
&lt;br /&gt;
= Starting current =&lt;br /&gt;
Here are some measurements of the Ardumower motor's starting current (peak):&lt;br /&gt;
&lt;br /&gt;
Starting current:&lt;br /&gt;
* Gear motor: 15A (starting current peak)&lt;br /&gt;
* Mowing motor: 20A (starting current peak)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery&amp;gt;&lt;br /&gt;
File: Messung_einschalt_spitzen.jpg | Gear motor start current (peak)&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= Short-circuit current =&lt;br /&gt;
To not damage the motor driver on the first run, find out the maximum current that can flow through your motors. In other words, find out the 'short-circuit' current. Typical measurement installation:&lt;br /&gt;
&lt;br /&gt;
Battery === Ampere meter === Motor&lt;br /&gt;
&lt;br /&gt;
The Amperemeter (e.g. model making) should be able to measure the maximum current (e.g. 30A). The motor to be measured is mechanically blocked (so it cannot rotate).&lt;br /&gt;
&lt;br /&gt;
'''Warning'''&lt;br /&gt;
&lt;br /&gt;
* always remove blades&lt;br /&gt;
* only connect battery for a short period (1-5 seconds)&lt;br /&gt;
* always use cables with sufficient wire cross section&lt;br /&gt;
&lt;br /&gt;
Example measurement:&lt;br /&gt;
&lt;br /&gt;
* Rotenbach SPM08-320&lt;br /&gt;
** Wheel motor: 8A&lt;br /&gt;
** Mowing motor:&lt;br /&gt;
&lt;br /&gt;
* Ambrogio L50&lt;br /&gt;
** Wheel motor: 4,5A&lt;br /&gt;
** Mowing motor: 22A&lt;br /&gt;
&lt;br /&gt;
* Tianchen TC-G158&lt;br /&gt;
** Wheel motor: 5,4A&lt;br /&gt;
** Mowing motor: 16A (both 32A)&lt;br /&gt;
&lt;br /&gt;
The measured current will only flow in 'worst-case' scenarios, which means when the motor starts or when it is blocked and it will only flow for a short time  (as your battery might not deliver the high current constantly, and so current and voltage will break down).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Current sensor =&lt;br /&gt;
To detect certain conditions (robot drives against obstacle, motor blocks etc.), the motor current should be monitored constantly. There are two approaches for sensing current.&lt;br /&gt;
&lt;br /&gt;
== Approach &amp;quot;Hall sensor module&amp;quot; ==&lt;br /&gt;
This is the recommended approach for sensing current. These current sensor modules are available for different current ranges.&lt;br /&gt;
&lt;br /&gt;
* ACS712ELC-05A (185mV/A, max. 5A)&lt;br /&gt;
* ACS712ELC-20A (100mV/A, max. 20A)&lt;br /&gt;
* ACS712ELC-30A (66mV/A, max. 30A)&lt;br /&gt;
* The lower the range, the more precise the measurement.&lt;br /&gt;
&lt;br /&gt;
== Approach &amp;quot;Shunt resistor (circuit)&amp;quot; ==&lt;br /&gt;
The current flows across a very small resistor (0.5 Ohm) and the voltage drop is measured&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery&amp;gt;&lt;br /&gt;
File: L298n_module_circuit.jpg &lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=Further links=&lt;br /&gt;
#[http://www.ardumower.de/index.php/en/forum/maehwerk/74-10a-pwm-controller-modul-fuer-den-arduino 10A PWM controller module modification]&lt;/div&gt;</summary>
		<author><name>Unlogic</name></author>	</entry>

	<entry>
		<id>https://wiki.ardumower.de/index.php?title=Datei:IBT-2-Input-Ports.jpg&amp;diff=2761</id>
		<title>Datei:IBT-2-Input-Ports.jpg</title>
		<link rel="alternate" type="text/html" href="https://wiki.ardumower.de/index.php?title=Datei:IBT-2-Input-Ports.jpg&amp;diff=2761"/>
				<updated>2015-08-30T14:15:17Z</updated>
		
		<summary type="html">&lt;p&gt;Unlogic: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Unlogic</name></author>	</entry>

	<entry>
		<id>https://wiki.ardumower.de/index.php?title=Motor_driver_ru&amp;diff=2760</id>
		<title>Motor driver ru</title>
		<link rel="alternate" type="text/html" href="https://wiki.ardumower.de/index.php?title=Motor_driver_ru&amp;diff=2760"/>
				<updated>2015-08-30T14:13:13Z</updated>
		
		<summary type="html">&lt;p&gt;Unlogic: /* IBT-2 (BTS7960/BTN7960) */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Описание =&lt;br /&gt;
Ardumower's design uses two different types of motors (all motors can be purchased via the [https://www.marotronics.de/index.php?k=7 shop] [[File: shopping.png|link=https://www.marotronics.de/index.php?k=7]]):&lt;br /&gt;
* Two motors (with integrated gearing) for driving (wheel motors), and encoder (for distance, direction and speed control)&lt;br /&gt;
* One motor (with high rotation speed) for mowing (mower motor)&lt;br /&gt;
&lt;br /&gt;
To control a motor, it requires a 'motor driver'.&lt;br /&gt;
&lt;br /&gt;
= Voltages =&lt;br /&gt;
Although there exist 12V motors and 24V motors, as in all modern systems, the Ardumower uses 24V motors. The reason is as follows:&lt;br /&gt;
&lt;br /&gt;
Assuming that the motor consumes 50W, using 24V results to a motor current: 50W / 24V = 2A.&lt;br /&gt;
&lt;br /&gt;
Assuming that the motor consumes 50W, using 12V results to a motor current: 50W / 12V = 4A.&lt;br /&gt;
&lt;br /&gt;
The higher the current (A), the more problems arise:&lt;br /&gt;
&lt;br /&gt;
* The motor driver must be suitable for higher current (more expensive)&lt;br /&gt;
* The PCB traces need to be more thick (more expensive)&lt;br /&gt;
* The rechargable battery need to support higher current (more expensive)&lt;br /&gt;
&lt;br /&gt;
So, that's the reason why Ardumower is designed as a 24V system.&lt;br /&gt;
&lt;br /&gt;
= Wheel motors =&lt;br /&gt;
&amp;lt;gallery&amp;gt;&lt;br /&gt;
  File: ardumower_motor.jpg | Ardumower gear motor with encoder (8mm diameter, 5900 rpm motor, 0.055 Nm, gear ratio 1/212, output torque 2.45Nm, output rpm 31)&lt;br /&gt;
  File: wheel_motor_diagram.png | Ardumower gear motor curve (motor only)&lt;br /&gt;
  File:decrease_motor_noise.png | Decrease motor noise&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
The two left and right gear motors are controlled independently (aka 'differential driving') to:&lt;br /&gt;
&lt;br /&gt;
* drive the robot forward/backward&lt;br /&gt;
* steer the robot left/right&lt;br /&gt;
&lt;br /&gt;
The Ardumower wheel motor features:&lt;br /&gt;
* A rotation speed up to 31 rpm allows to move the robot at sufficient speed (at up to meter/sec = 31rpm/60 * PI * 0.25m  = 0.4m/sec using 250mm diameter wheels)&lt;br /&gt;
* A high torque (2.45Nm) guarantees that the robot can climb small hills as well (with 2 motors, 0.125 radius wheel, 31rpm = 0.4m/s, acceleration = 0.2 ( 1/2 of nomeinal speed) up to 14 degree) [http://www.robotshop.com/blog/en/drive-motor-sizing-tool-9698 see calculator]&lt;br /&gt;
* Integrated encoders, so it can measure the rotation speed, the distance and the direction (see [[Odometry]] for more information) - Encoders are REQUIRED for Ardumower software.&lt;br /&gt;
* 24V  (load current ~1A)&lt;br /&gt;
&lt;br /&gt;
= Motor driver =&lt;br /&gt;
A motor driver is a circuit that allows current to flow either one direction or the opposite direction through the motor - depending on wether the motor should turn forward or backward (so called 'H-bridge'). There are many motor drivers available as ready-circuit boards, some can even control two motors  (Dual H-Bridge) - if you connect two of their H-bridges in parallel, the maximum motor current can be increased.&lt;br /&gt;
&lt;br /&gt;
If the direction of the motor does not need to be controlled, (e.g. for the blades), you do not need an H-bridge, but instead a simple 'switch' (e.g. MOSFET-transistor-circuit).&lt;br /&gt;
&lt;br /&gt;
The motor driver is connected through control signals to the Arduino. Example:&lt;br /&gt;
&lt;br /&gt;
  Arduino Digital Pin  —&amp;gt;  MOTOR-Direction Pin (DIR)&lt;br /&gt;
  Arduino PWM Pin      —&amp;gt;  MOTOR-Speed Pin (PWM)&lt;br /&gt;
  Arduino Analog Pin   &amp;lt;—  MOTOR-Current Sensor Pin&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
One pin controls the direction (forward/backward), the other pin controls the speed. One analog input pin is connected to the current sensor. The current sensor module (ACS712-05A) is connected in series with the motor.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery&amp;gt;&lt;br /&gt;
File:Ardumower_motor_driver_circuit.png | NOTE: only for demonstration! See real [http://wiki.ardumower.de/index.php?title=Ardumower_PCB schematics] for concrete wiring&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== PWM frequency ==&lt;br /&gt;
The speed of the motor is controlled by a PWM duty signal. We use the Arduino default PWM frequency (490 Hz) to control the motor drivers.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery&amp;gt;&lt;br /&gt;
File: Arduino_pwm.png | Arduino PWM duty signal&lt;br /&gt;
File: Pwm_490hz.png | PWM 490 Hz: odometry ticks, sense (current) &lt;br /&gt;
File: Pwm_3khz.png | PWM 3.9 Khz: odometry ticks, sense (current) &lt;br /&gt;
File: Pwm_20khz.png | PWM 20 Khz: odometry ticks, sense (current) &lt;br /&gt;
File: Pwm_31khz.png | PWM 31 Khz: odometry ticks, sense (current) &lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Popular modules ==&lt;br /&gt;
=== MC33926 (recommended) ===&lt;br /&gt;
&lt;br /&gt;
Особенности: up to 3A with integrated current sensor and thermal shut-down protection, for all kind of robot mowers) &lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery&amp;gt;&lt;br /&gt;
File:Mc33926.jpg | pinout&lt;br /&gt;
File:Mc33926_example.jpg | jumpers&lt;br /&gt;
File:MC33926_schematics.jpg | schematics&lt;br /&gt;
File:Mc33926_current_limiter.jpg | automatic current limiter&lt;br /&gt;
File:Motor_pwm_50_percent_transients.jpg | Motor start 50% PWM transients&lt;br /&gt;
File:driver_hw_protection.png | Peak/EMF protection&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''&lt;br /&gt;
 M1_FB     --- pinMotorLeftSense A1&lt;br /&gt;
 M1_SF     --- pinMotorLeftFault 25&lt;br /&gt;
 M1_PWM_D1 --- connect with jumper to GND&lt;br /&gt;
 M1_PWM_D2 --- connect with jumper to VDD&lt;br /&gt;
 M1_IN1    --- pinMotorLeftPWM 5  &lt;br /&gt;
 M1_IN2    --- pinMotorLeftDir 31&lt;br /&gt;
 EN        --- pinMotorEnable  37&lt;br /&gt;
 M2_FB     --- pinMotorRightSense A0&lt;br /&gt;
 M2_SF     --- pinMotorRightFault 27&lt;br /&gt;
 M2_PWM_D1 --- connect with jumper to GND&lt;br /&gt;
 M2_PWM_D2 --- connect with jumper to VDD&lt;br /&gt;
 M2_IN1    --- pinMotorRightPWM  3 &lt;br /&gt;
 M2_IN2    --- pinMotorRightDir 33&lt;br /&gt;
 EN        --- pinMotorEnable  37&lt;br /&gt;
 VDD       --- Arduino 5V&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== IBT-2 (BTS7960/BTN7960) ===&lt;br /&gt;
&amp;lt;gallery&amp;gt;&lt;br /&gt;
  File: BTS7960B_motor_driver.jpg | Модуль BTS7960B&lt;br /&gt;
  File: BTS7960B_motor_driver1.jpg | Модуль BTS7960B&lt;br /&gt;
  File: BTS7960B_motor_driver2.jpg | Модуль BTS7960B&lt;br /&gt;
  File: BTS7960B_motor_driver_sch.jpg | Схема модуля BTS7960B&lt;br /&gt;
  File: BTS7960B_HBridgemontage-635056137829375000.jpg | Схема подключения&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Особенности: 5.5-27V, 43A (цена 9 USD)&lt;br /&gt;
&lt;br /&gt;
На один двигатель требуется один модуль.&lt;br /&gt;
&lt;br /&gt;
Pinout:&lt;br /&gt;
&lt;br /&gt;
 1 RPWM Forward level or PWM signal input, active HIGH &lt;br /&gt;
 2 LPWM Reverse level or PWM signal input, active HIGH&lt;br /&gt;
 3 R_EN Forward drive enable input, HIGH enable, LOW Close&lt;br /&gt;
 4 L_EN Reverse drive enable input, HIGH enable, LOW Close&lt;br /&gt;
 5 R_IS Forward drive - side current alarm output&lt;br /&gt;
 6 L_IS Reverse drive - side current alarm output&lt;br /&gt;
 7 VCC 5V power input from Arduino board.&lt;br /&gt;
 8 GND Ground.&lt;br /&gt;
&lt;br /&gt;
[http://www.fut-electronics.com/wp-content/plugins/fe_downloads/Uploads/30A%20_Motor_Driver.pdf пример подключения 1]&lt;br /&gt;
[http://www.instructables.com/id/Motor-Driver-BTS7960-43A/?ALLSTEPS пример подключения 2]&lt;br /&gt;
&lt;br /&gt;
 BTS7960B GND      --- GND&lt;br /&gt;
 BTS7960B VCC      --- Arduino 5V&lt;br /&gt;
 BTS7960B R_IS     --- нет&lt;br /&gt;
 BTS7960B L_IS     --- нет&lt;br /&gt;
 BTS7960B R_EN     --- Arduino MOTOR_DIR pinMotorRightDir 33&lt;br /&gt;
 BTS7960B L_EN     --- Arduino MOTOR_DIR pinMotorLeftDir 31&lt;br /&gt;
 BTS7960B R_PWM    --- Arduino MOTOR_PWM pinMotorRightPWM  3 &lt;br /&gt;
 BTS7960B L_PWM    --- Arduino MOTOR_PWM pinMotorLeftPWM 5 &lt;br /&gt;
 BTS7960B MOTOR(+) --- motor(+)&lt;br /&gt;
 BTS7960B MOTOR(-) --- motor(-)&lt;br /&gt;
 BTS7960B POWER(+) --- battery(+)&lt;br /&gt;
 BTS7960B POWER(-) --- battery(-)&lt;br /&gt;
&lt;br /&gt;
=== L6201P ===&lt;br /&gt;
&amp;lt;gallery&amp;gt;&lt;br /&gt;
  File: L6201P_motor_driver.jpg | L6201P PCB&lt;br /&gt;
  File: L6201p.png | L6201P datasheet&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Особенности: 48V, 4A&lt;br /&gt;
&lt;br /&gt;
 B+     power supply output voltage equal to the power connector&lt;br /&gt;
 GND    GND&lt;br /&gt;
 EN     driver enable&lt;br /&gt;
 RPWM   forward PWM signal, active HIGH&lt;br /&gt;
 LPWM   reverse PWM signal, active HIGH&lt;br /&gt;
 CT     current signal output&lt;br /&gt;
 VT     voltage signal output&lt;br /&gt;
&lt;br /&gt;
 Forward   EN=1, RPWM=PWM, LPWM=0&lt;br /&gt;
 Reverse   EN=1, RPWM=0,   LPWM=PWM  (also possible?   EN=1, RPWM=255-PWM, LPWM=1  =&amp;gt; needs to be verified!)&lt;br /&gt;
 Brake     EN=1, RPWM=0,   LPWM=0&lt;br /&gt;
 Not brake EN=0, RPWM=x,   LPWM=x&lt;br /&gt;
 Note: 1=High level (3.3-5v), 0=Low level (0V or GND)&lt;br /&gt;
&lt;br /&gt;
=== L9958 ===&lt;br /&gt;
Особенности: Arduino 240W H-bridge Motor Driver Board - SX8847, up to 8A &lt;br /&gt;
&lt;br /&gt;
Note that this module has an on-board [http://en.wikipedia.org/wiki/78xx linear voltage regulator], which converts the input POWER (typically 24 or 12V) to 5V. Some modules do this with a single voltage regulator (chip VR1 on the module), or in a two-staged approach (VR1 and U2). &lt;br /&gt;
&lt;br /&gt;
Converting 24V to 5V with a linear voltage regulator is very inefficient (current in = current out, so if you need 100mA at 5V, the linear voltage regulator requires 100mA at 24V, so you loose 1.9W in this module). Therefore, it is recommended to disconnect the linear voltage regulator from the board, and use the 5V from the switched mode power supply. &lt;br /&gt;
&lt;br /&gt;
 L9958 GND---GND&lt;br /&gt;
 L9958 VCC---Arduino 5V&lt;br /&gt;
 L9958 EN---Arduino 5V&lt;br /&gt;
 L9958 DI---GND&lt;br /&gt;
 L9958 DIR---Arduino MOTOR_DIR&lt;br /&gt;
 L9958 PWM---Arduino MOTOR_PWM&lt;br /&gt;
 L9958 MOTOR(+)---motor(+)&lt;br /&gt;
 L9958 MOTOR(-)---motor(-)&lt;br /&gt;
 L9958 POWER(+)---battery(+)&lt;br /&gt;
 L9958 POWER(-)---battery(-)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery&amp;gt;&lt;br /&gt;
  File: Motor_driver_L9958.jpg&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== L298N ===&lt;br /&gt;
Особенности: up to 4A &lt;br /&gt;
Notice: When using a L298N-motor driver, both H-bridges (2A) should be connected in parallel, so that both bridges drive a single motor (max. 4A):&lt;br /&gt;
&lt;br /&gt;
Connect in parallel:&lt;br /&gt;
 IN1 with IN4&lt;br /&gt;
 IN2 with IN3&lt;br /&gt;
 OUT1 with OUT4&lt;br /&gt;
 OUT2 with OUT3&lt;br /&gt;
(Do NOT disconnect the SENSE-lines, except when you want to measure current by a 'shunt' resistor).&lt;br /&gt;
&lt;br /&gt;
Make sure there is a jumper on both ENA and ENB. Also, make sure there is a jumper on S1.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery&amp;gt;&lt;br /&gt;
File: Motordriver_l298n.JPG | driver &lt;br /&gt;
File: L298driver.jpg | double current&lt;br /&gt;
File: L298N_schematics.jpg | schematics&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= Mower motor and driver =&lt;br /&gt;
&amp;lt;gallery&amp;gt;&lt;br /&gt;
File: ardumower_mower_motor.jpg | Ardumower mower motor&lt;br /&gt;
File: Mower_motor_curve.png | Ardumower mower motor curve&lt;br /&gt;
File: Mower2_start_current.png | Mower start current&lt;br /&gt;
File: Mower4_blocked_500ms_detect_5s_wait.png | Mower blocked, 500ms detection (max), waittime: 5sec (min)&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
The Ardumower mower motor features:&lt;br /&gt;
* Fast enough to cut the lawn (3150 rpm)&lt;br /&gt;
* Enough torque (140 mNm / 46 W)&lt;br /&gt;
* Quiet mowing (you cannot hear it)&lt;br /&gt;
* 24V, load current ~1.0A  (L=2.8mH, R=1.9ohm)&lt;br /&gt;
&lt;br /&gt;
For a the mowing motor, a MOSFET circuit is used. The MOSFET transistor IRLIZ44N (alternatives: IRF1404, IRL540N, RFP30N06LE, FQP30N06L) can already switch a current of 30A at the Arduino 5V control signal (N-LogL). The 10K resistor pulls down to ground when the Arduino starts. The 180 Ohm resistor limits the current at the Gate caused by level switches to about 30mA. The diode (MBR1045) protects  the circuit against current caused by motor induction. A current sensor module (ACS712-30A) is connected in series with the motor.&lt;br /&gt;
&lt;br /&gt;
[[File:warning.png]]'''Security note: For security reasons, always remove mower blades in your first tests!'''&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery&amp;gt;&lt;br /&gt;
File: Ardumower_mower_motor_circuit.png | NOTE: only for demonstration! See real [http://wiki.ardumower.de/index.php?title=Ardumower_PCB schematics] for concrete wiring&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= Choosing a driver =&lt;br /&gt;
&lt;br /&gt;
When purchasing a motor driver, consider...&lt;br /&gt;
* max. thermal load (short-circuit current)&lt;br /&gt;
* price&lt;br /&gt;
&lt;br /&gt;
= Starting current =&lt;br /&gt;
Here are some measurements of the Ardumower motor's starting current (peak):&lt;br /&gt;
&lt;br /&gt;
Starting current:&lt;br /&gt;
* Gear motor: 15A (starting current peak)&lt;br /&gt;
* Mowing motor: 20A (starting current peak)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery&amp;gt;&lt;br /&gt;
File: Messung_einschalt_spitzen.jpg | Gear motor start current (peak)&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= Short-circuit current =&lt;br /&gt;
To not damage the motor driver on the first run, find out the maximum current that can flow through your motors. In other words, find out the 'short-circuit' current. Typical measurement installation:&lt;br /&gt;
&lt;br /&gt;
Battery === Ampere meter === Motor&lt;br /&gt;
&lt;br /&gt;
The Amperemeter (e.g. model making) should be able to measure the maximum current (e.g. 30A). The motor to be measured is mechanically blocked (so it cannot rotate).&lt;br /&gt;
&lt;br /&gt;
'''Warning'''&lt;br /&gt;
&lt;br /&gt;
* always remove blades&lt;br /&gt;
* only connect battery for a short period (1-5 seconds)&lt;br /&gt;
* always use cables with sufficient wire cross section&lt;br /&gt;
&lt;br /&gt;
Example measurement:&lt;br /&gt;
&lt;br /&gt;
* Rotenbach SPM08-320&lt;br /&gt;
** Wheel motor: 8A&lt;br /&gt;
** Mowing motor:&lt;br /&gt;
&lt;br /&gt;
* Ambrogio L50&lt;br /&gt;
** Wheel motor: 4,5A&lt;br /&gt;
** Mowing motor: 22A&lt;br /&gt;
&lt;br /&gt;
* Tianchen TC-G158&lt;br /&gt;
** Wheel motor: 5,4A&lt;br /&gt;
** Mowing motor: 16A (both 32A)&lt;br /&gt;
&lt;br /&gt;
The measured current will only flow in 'worst-case' scenarios, which means when the motor starts or when it is blocked and it will only flow for a short time  (as your battery might not deliver the high current constantly, and so current and voltage will break down).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Current sensor =&lt;br /&gt;
To detect certain conditions (robot drives against obstacle, motor blocks etc.), the motor current should be monitored constantly. There are two approaches for sensing current.&lt;br /&gt;
&lt;br /&gt;
== Approach &amp;quot;Hall sensor module&amp;quot; ==&lt;br /&gt;
This is the recommended approach for sensing current. These current sensor modules are available for different current ranges.&lt;br /&gt;
&lt;br /&gt;
* ACS712ELC-05A (185mV/A, max. 5A)&lt;br /&gt;
* ACS712ELC-20A (100mV/A, max. 20A)&lt;br /&gt;
* ACS712ELC-30A (66mV/A, max. 30A)&lt;br /&gt;
* The lower the range, the more precise the measurement.&lt;br /&gt;
&lt;br /&gt;
== Approach &amp;quot;Shunt resistor (circuit)&amp;quot; ==&lt;br /&gt;
The current flows across a very small resistor (0.5 Ohm) and the voltage drop is measured&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery&amp;gt;&lt;br /&gt;
File: L298n_module_circuit.jpg &lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=Further links=&lt;br /&gt;
#[http://www.ardumower.de/index.php/en/forum/maehwerk/74-10a-pwm-controller-modul-fuer-den-arduino 10A PWM controller module modification]&lt;/div&gt;</summary>
		<author><name>Unlogic</name></author>	</entry>

	<entry>
		<id>https://wiki.ardumower.de/index.php?title=Motor_driver_ru&amp;diff=2759</id>
		<title>Motor driver ru</title>
		<link rel="alternate" type="text/html" href="https://wiki.ardumower.de/index.php?title=Motor_driver_ru&amp;diff=2759"/>
				<updated>2015-08-30T14:06:14Z</updated>
		
		<summary type="html">&lt;p&gt;Unlogic: /* IBT-2 (BTS7960/BTN7960) */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Описание =&lt;br /&gt;
Ardumower's design uses two different types of motors (all motors can be purchased via the [https://www.marotronics.de/index.php?k=7 shop] [[File: shopping.png|link=https://www.marotronics.de/index.php?k=7]]):&lt;br /&gt;
* Two motors (with integrated gearing) for driving (wheel motors), and encoder (for distance, direction and speed control)&lt;br /&gt;
* One motor (with high rotation speed) for mowing (mower motor)&lt;br /&gt;
&lt;br /&gt;
To control a motor, it requires a 'motor driver'.&lt;br /&gt;
&lt;br /&gt;
= Voltages =&lt;br /&gt;
Although there exist 12V motors and 24V motors, as in all modern systems, the Ardumower uses 24V motors. The reason is as follows:&lt;br /&gt;
&lt;br /&gt;
Assuming that the motor consumes 50W, using 24V results to a motor current: 50W / 24V = 2A.&lt;br /&gt;
&lt;br /&gt;
Assuming that the motor consumes 50W, using 12V results to a motor current: 50W / 12V = 4A.&lt;br /&gt;
&lt;br /&gt;
The higher the current (A), the more problems arise:&lt;br /&gt;
&lt;br /&gt;
* The motor driver must be suitable for higher current (more expensive)&lt;br /&gt;
* The PCB traces need to be more thick (more expensive)&lt;br /&gt;
* The rechargable battery need to support higher current (more expensive)&lt;br /&gt;
&lt;br /&gt;
So, that's the reason why Ardumower is designed as a 24V system.&lt;br /&gt;
&lt;br /&gt;
= Wheel motors =&lt;br /&gt;
&amp;lt;gallery&amp;gt;&lt;br /&gt;
  File: ardumower_motor.jpg | Ardumower gear motor with encoder (8mm diameter, 5900 rpm motor, 0.055 Nm, gear ratio 1/212, output torque 2.45Nm, output rpm 31)&lt;br /&gt;
  File: wheel_motor_diagram.png | Ardumower gear motor curve (motor only)&lt;br /&gt;
  File:decrease_motor_noise.png | Decrease motor noise&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
The two left and right gear motors are controlled independently (aka 'differential driving') to:&lt;br /&gt;
&lt;br /&gt;
* drive the robot forward/backward&lt;br /&gt;
* steer the robot left/right&lt;br /&gt;
&lt;br /&gt;
The Ardumower wheel motor features:&lt;br /&gt;
* A rotation speed up to 31 rpm allows to move the robot at sufficient speed (at up to meter/sec = 31rpm/60 * PI * 0.25m  = 0.4m/sec using 250mm diameter wheels)&lt;br /&gt;
* A high torque (2.45Nm) guarantees that the robot can climb small hills as well (with 2 motors, 0.125 radius wheel, 31rpm = 0.4m/s, acceleration = 0.2 ( 1/2 of nomeinal speed) up to 14 degree) [http://www.robotshop.com/blog/en/drive-motor-sizing-tool-9698 see calculator]&lt;br /&gt;
* Integrated encoders, so it can measure the rotation speed, the distance and the direction (see [[Odometry]] for more information) - Encoders are REQUIRED for Ardumower software.&lt;br /&gt;
* 24V  (load current ~1A)&lt;br /&gt;
&lt;br /&gt;
= Motor driver =&lt;br /&gt;
A motor driver is a circuit that allows current to flow either one direction or the opposite direction through the motor - depending on wether the motor should turn forward or backward (so called 'H-bridge'). There are many motor drivers available as ready-circuit boards, some can even control two motors  (Dual H-Bridge) - if you connect two of their H-bridges in parallel, the maximum motor current can be increased.&lt;br /&gt;
&lt;br /&gt;
If the direction of the motor does not need to be controlled, (e.g. for the blades), you do not need an H-bridge, but instead a simple 'switch' (e.g. MOSFET-transistor-circuit).&lt;br /&gt;
&lt;br /&gt;
The motor driver is connected through control signals to the Arduino. Example:&lt;br /&gt;
&lt;br /&gt;
  Arduino Digital Pin  —&amp;gt;  MOTOR-Direction Pin (DIR)&lt;br /&gt;
  Arduino PWM Pin      —&amp;gt;  MOTOR-Speed Pin (PWM)&lt;br /&gt;
  Arduino Analog Pin   &amp;lt;—  MOTOR-Current Sensor Pin&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
One pin controls the direction (forward/backward), the other pin controls the speed. One analog input pin is connected to the current sensor. The current sensor module (ACS712-05A) is connected in series with the motor.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery&amp;gt;&lt;br /&gt;
File:Ardumower_motor_driver_circuit.png | NOTE: only for demonstration! See real [http://wiki.ardumower.de/index.php?title=Ardumower_PCB schematics] for concrete wiring&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== PWM frequency ==&lt;br /&gt;
The speed of the motor is controlled by a PWM duty signal. We use the Arduino default PWM frequency (490 Hz) to control the motor drivers.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery&amp;gt;&lt;br /&gt;
File: Arduino_pwm.png | Arduino PWM duty signal&lt;br /&gt;
File: Pwm_490hz.png | PWM 490 Hz: odometry ticks, sense (current) &lt;br /&gt;
File: Pwm_3khz.png | PWM 3.9 Khz: odometry ticks, sense (current) &lt;br /&gt;
File: Pwm_20khz.png | PWM 20 Khz: odometry ticks, sense (current) &lt;br /&gt;
File: Pwm_31khz.png | PWM 31 Khz: odometry ticks, sense (current) &lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Popular modules ==&lt;br /&gt;
=== MC33926 (recommended) ===&lt;br /&gt;
&lt;br /&gt;
Особенности: up to 3A with integrated current sensor and thermal shut-down protection, for all kind of robot mowers) &lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery&amp;gt;&lt;br /&gt;
File:Mc33926.jpg | pinout&lt;br /&gt;
File:Mc33926_example.jpg | jumpers&lt;br /&gt;
File:MC33926_schematics.jpg | schematics&lt;br /&gt;
File:Mc33926_current_limiter.jpg | automatic current limiter&lt;br /&gt;
File:Motor_pwm_50_percent_transients.jpg | Motor start 50% PWM transients&lt;br /&gt;
File:driver_hw_protection.png | Peak/EMF protection&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''&lt;br /&gt;
 M1_FB     --- pinMotorLeftSense A1&lt;br /&gt;
 M1_SF     --- pinMotorLeftFault 25&lt;br /&gt;
 M1_PWM_D1 --- connect with jumper to GND&lt;br /&gt;
 M1_PWM_D2 --- connect with jumper to VDD&lt;br /&gt;
 M1_IN1    --- pinMotorLeftPWM 5  &lt;br /&gt;
 M1_IN2    --- pinMotorLeftDir 31&lt;br /&gt;
 EN        --- pinMotorEnable  37&lt;br /&gt;
 M2_FB     --- pinMotorRightSense A0&lt;br /&gt;
 M2_SF     --- pinMotorRightFault 27&lt;br /&gt;
 M2_PWM_D1 --- connect with jumper to GND&lt;br /&gt;
 M2_PWM_D2 --- connect with jumper to VDD&lt;br /&gt;
 M2_IN1    --- pinMotorRightPWM  3 &lt;br /&gt;
 M2_IN2    --- pinMotorRightDir 33&lt;br /&gt;
 EN        --- pinMotorEnable  37&lt;br /&gt;
 VDD       --- Arduino 5V&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== IBT-2 (BTS7960/BTN7960) ===&lt;br /&gt;
&amp;lt;gallery&amp;gt;&lt;br /&gt;
  File: BTS7960B_motor_driver.jpg | Модуль BTS7960B&lt;br /&gt;
  File: BTS7960B_motor_driver1.jpg | Модуль BTS7960B&lt;br /&gt;
  File: BTS7960B_motor_driver2.jpg | Модуль BTS7960B&lt;br /&gt;
  File: BTS7960B_motor_driver_sch.jpg | Схема модуля BTS7960B&lt;br /&gt;
  File: BTS7960B_HBridgemontage-635056137829375000.jpg | Схема подключения&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Особенности: 5.5-27V, 43A (цена 9 USD)&lt;br /&gt;
&lt;br /&gt;
На один двигатель требуется один модуль.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 1 RPWM Forward level or PWM signal input, active HIGH &lt;br /&gt;
 2 LPWM Reverse level or PWM signal input, active HIGH&lt;br /&gt;
 3 R_EN Forward drive enable input, HIGH enable, LOW Close&lt;br /&gt;
 4 L_EN Reverse drive enable input, HIGH enable, LOW Close&lt;br /&gt;
 5 R_IS Forward drive - side current alarm output&lt;br /&gt;
 6 L_IS Reverse drive - side current alarm output&lt;br /&gt;
 7 VCC 5V power input from Arduino board.&lt;br /&gt;
 8 GND Ground.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[http://www.instructables.com/id/Motor-Driver-BTS7960-43A/?ALLSTEPS пример подключения]&lt;br /&gt;
&lt;br /&gt;
 BTS7960B GND      --- GND&lt;br /&gt;
 BTS7960B VCC      --- Arduino 5V&lt;br /&gt;
 BTS7960B R_IS     --- нет&lt;br /&gt;
 BTS7960B L_IS     --- нет&lt;br /&gt;
 BTS7960B R_EN     --- Arduino MOTOR_DIR pinMotorRightDir 33&lt;br /&gt;
 BTS7960B L_EN     --- Arduino MOTOR_DIR pinMotorLeftDir 31&lt;br /&gt;
 BTS7960B R_PWM    --- Arduino MOTOR_PWM pinMotorRightPWM  3 &lt;br /&gt;
 BTS7960B L_PWM    --- Arduino MOTOR_PWM pinMotorLeftPWM 5 &lt;br /&gt;
 BTS7960B MOTOR(+) --- motor(+)&lt;br /&gt;
 BTS7960B MOTOR(-) --- motor(-)&lt;br /&gt;
 BTS7960B POWER(+) --- battery(+)&lt;br /&gt;
 BTS7960B POWER(-) --- battery(-)&lt;br /&gt;
&lt;br /&gt;
=== L6201P ===&lt;br /&gt;
&amp;lt;gallery&amp;gt;&lt;br /&gt;
  File: L6201P_motor_driver.jpg | L6201P PCB&lt;br /&gt;
  File: L6201p.png | L6201P datasheet&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Особенности: 48V, 4A&lt;br /&gt;
&lt;br /&gt;
 B+     power supply output voltage equal to the power connector&lt;br /&gt;
 GND    GND&lt;br /&gt;
 EN     driver enable&lt;br /&gt;
 RPWM   forward PWM signal, active HIGH&lt;br /&gt;
 LPWM   reverse PWM signal, active HIGH&lt;br /&gt;
 CT     current signal output&lt;br /&gt;
 VT     voltage signal output&lt;br /&gt;
&lt;br /&gt;
 Forward   EN=1, RPWM=PWM, LPWM=0&lt;br /&gt;
 Reverse   EN=1, RPWM=0,   LPWM=PWM  (also possible?   EN=1, RPWM=255-PWM, LPWM=1  =&amp;gt; needs to be verified!)&lt;br /&gt;
 Brake     EN=1, RPWM=0,   LPWM=0&lt;br /&gt;
 Not brake EN=0, RPWM=x,   LPWM=x&lt;br /&gt;
 Note: 1=High level (3.3-5v), 0=Low level (0V or GND)&lt;br /&gt;
&lt;br /&gt;
=== L9958 ===&lt;br /&gt;
Особенности: Arduino 240W H-bridge Motor Driver Board - SX8847, up to 8A &lt;br /&gt;
&lt;br /&gt;
Note that this module has an on-board [http://en.wikipedia.org/wiki/78xx linear voltage regulator], which converts the input POWER (typically 24 or 12V) to 5V. Some modules do this with a single voltage regulator (chip VR1 on the module), or in a two-staged approach (VR1 and U2). &lt;br /&gt;
&lt;br /&gt;
Converting 24V to 5V with a linear voltage regulator is very inefficient (current in = current out, so if you need 100mA at 5V, the linear voltage regulator requires 100mA at 24V, so you loose 1.9W in this module). Therefore, it is recommended to disconnect the linear voltage regulator from the board, and use the 5V from the switched mode power supply. &lt;br /&gt;
&lt;br /&gt;
 L9958 GND---GND&lt;br /&gt;
 L9958 VCC---Arduino 5V&lt;br /&gt;
 L9958 EN---Arduino 5V&lt;br /&gt;
 L9958 DI---GND&lt;br /&gt;
 L9958 DIR---Arduino MOTOR_DIR&lt;br /&gt;
 L9958 PWM---Arduino MOTOR_PWM&lt;br /&gt;
 L9958 MOTOR(+)---motor(+)&lt;br /&gt;
 L9958 MOTOR(-)---motor(-)&lt;br /&gt;
 L9958 POWER(+)---battery(+)&lt;br /&gt;
 L9958 POWER(-)---battery(-)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery&amp;gt;&lt;br /&gt;
  File: Motor_driver_L9958.jpg&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== L298N ===&lt;br /&gt;
Особенности: up to 4A &lt;br /&gt;
Notice: When using a L298N-motor driver, both H-bridges (2A) should be connected in parallel, so that both bridges drive a single motor (max. 4A):&lt;br /&gt;
&lt;br /&gt;
Connect in parallel:&lt;br /&gt;
 IN1 with IN4&lt;br /&gt;
 IN2 with IN3&lt;br /&gt;
 OUT1 with OUT4&lt;br /&gt;
 OUT2 with OUT3&lt;br /&gt;
(Do NOT disconnect the SENSE-lines, except when you want to measure current by a 'shunt' resistor).&lt;br /&gt;
&lt;br /&gt;
Make sure there is a jumper on both ENA and ENB. Also, make sure there is a jumper on S1.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery&amp;gt;&lt;br /&gt;
File: Motordriver_l298n.JPG | driver &lt;br /&gt;
File: L298driver.jpg | double current&lt;br /&gt;
File: L298N_schematics.jpg | schematics&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= Mower motor and driver =&lt;br /&gt;
&amp;lt;gallery&amp;gt;&lt;br /&gt;
File: ardumower_mower_motor.jpg | Ardumower mower motor&lt;br /&gt;
File: Mower_motor_curve.png | Ardumower mower motor curve&lt;br /&gt;
File: Mower2_start_current.png | Mower start current&lt;br /&gt;
File: Mower4_blocked_500ms_detect_5s_wait.png | Mower blocked, 500ms detection (max), waittime: 5sec (min)&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
The Ardumower mower motor features:&lt;br /&gt;
* Fast enough to cut the lawn (3150 rpm)&lt;br /&gt;
* Enough torque (140 mNm / 46 W)&lt;br /&gt;
* Quiet mowing (you cannot hear it)&lt;br /&gt;
* 24V, load current ~1.0A  (L=2.8mH, R=1.9ohm)&lt;br /&gt;
&lt;br /&gt;
For a the mowing motor, a MOSFET circuit is used. The MOSFET transistor IRLIZ44N (alternatives: IRF1404, IRL540N, RFP30N06LE, FQP30N06L) can already switch a current of 30A at the Arduino 5V control signal (N-LogL). The 10K resistor pulls down to ground when the Arduino starts. The 180 Ohm resistor limits the current at the Gate caused by level switches to about 30mA. The diode (MBR1045) protects  the circuit against current caused by motor induction. A current sensor module (ACS712-30A) is connected in series with the motor.&lt;br /&gt;
&lt;br /&gt;
[[File:warning.png]]'''Security note: For security reasons, always remove mower blades in your first tests!'''&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery&amp;gt;&lt;br /&gt;
File: Ardumower_mower_motor_circuit.png | NOTE: only for demonstration! See real [http://wiki.ardumower.de/index.php?title=Ardumower_PCB schematics] for concrete wiring&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= Choosing a driver =&lt;br /&gt;
&lt;br /&gt;
When purchasing a motor driver, consider...&lt;br /&gt;
* max. thermal load (short-circuit current)&lt;br /&gt;
* price&lt;br /&gt;
&lt;br /&gt;
= Starting current =&lt;br /&gt;
Here are some measurements of the Ardumower motor's starting current (peak):&lt;br /&gt;
&lt;br /&gt;
Starting current:&lt;br /&gt;
* Gear motor: 15A (starting current peak)&lt;br /&gt;
* Mowing motor: 20A (starting current peak)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery&amp;gt;&lt;br /&gt;
File: Messung_einschalt_spitzen.jpg | Gear motor start current (peak)&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= Short-circuit current =&lt;br /&gt;
To not damage the motor driver on the first run, find out the maximum current that can flow through your motors. In other words, find out the 'short-circuit' current. Typical measurement installation:&lt;br /&gt;
&lt;br /&gt;
Battery === Ampere meter === Motor&lt;br /&gt;
&lt;br /&gt;
The Amperemeter (e.g. model making) should be able to measure the maximum current (e.g. 30A). The motor to be measured is mechanically blocked (so it cannot rotate).&lt;br /&gt;
&lt;br /&gt;
'''Warning'''&lt;br /&gt;
&lt;br /&gt;
* always remove blades&lt;br /&gt;
* only connect battery for a short period (1-5 seconds)&lt;br /&gt;
* always use cables with sufficient wire cross section&lt;br /&gt;
&lt;br /&gt;
Example measurement:&lt;br /&gt;
&lt;br /&gt;
* Rotenbach SPM08-320&lt;br /&gt;
** Wheel motor: 8A&lt;br /&gt;
** Mowing motor:&lt;br /&gt;
&lt;br /&gt;
* Ambrogio L50&lt;br /&gt;
** Wheel motor: 4,5A&lt;br /&gt;
** Mowing motor: 22A&lt;br /&gt;
&lt;br /&gt;
* Tianchen TC-G158&lt;br /&gt;
** Wheel motor: 5,4A&lt;br /&gt;
** Mowing motor: 16A (both 32A)&lt;br /&gt;
&lt;br /&gt;
The measured current will only flow in 'worst-case' scenarios, which means when the motor starts or when it is blocked and it will only flow for a short time  (as your battery might not deliver the high current constantly, and so current and voltage will break down).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Current sensor =&lt;br /&gt;
To detect certain conditions (robot drives against obstacle, motor blocks etc.), the motor current should be monitored constantly. There are two approaches for sensing current.&lt;br /&gt;
&lt;br /&gt;
== Approach &amp;quot;Hall sensor module&amp;quot; ==&lt;br /&gt;
This is the recommended approach for sensing current. These current sensor modules are available for different current ranges.&lt;br /&gt;
&lt;br /&gt;
* ACS712ELC-05A (185mV/A, max. 5A)&lt;br /&gt;
* ACS712ELC-20A (100mV/A, max. 20A)&lt;br /&gt;
* ACS712ELC-30A (66mV/A, max. 30A)&lt;br /&gt;
* The lower the range, the more precise the measurement.&lt;br /&gt;
&lt;br /&gt;
== Approach &amp;quot;Shunt resistor (circuit)&amp;quot; ==&lt;br /&gt;
The current flows across a very small resistor (0.5 Ohm) and the voltage drop is measured&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery&amp;gt;&lt;br /&gt;
File: L298n_module_circuit.jpg &lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=Further links=&lt;br /&gt;
#[http://www.ardumower.de/index.php/en/forum/maehwerk/74-10a-pwm-controller-modul-fuer-den-arduino 10A PWM controller module modification]&lt;/div&gt;</summary>
		<author><name>Unlogic</name></author>	</entry>

	<entry>
		<id>https://wiki.ardumower.de/index.php?title=Motor_driver_ru&amp;diff=2758</id>
		<title>Motor driver ru</title>
		<link rel="alternate" type="text/html" href="https://wiki.ardumower.de/index.php?title=Motor_driver_ru&amp;diff=2758"/>
				<updated>2015-08-30T14:01:47Z</updated>
		
		<summary type="html">&lt;p&gt;Unlogic: /* BTS7960B / BTN7960B */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Описание =&lt;br /&gt;
Ardumower's design uses two different types of motors (all motors can be purchased via the [https://www.marotronics.de/index.php?k=7 shop] [[File: shopping.png|link=https://www.marotronics.de/index.php?k=7]]):&lt;br /&gt;
* Two motors (with integrated gearing) for driving (wheel motors), and encoder (for distance, direction and speed control)&lt;br /&gt;
* One motor (with high rotation speed) for mowing (mower motor)&lt;br /&gt;
&lt;br /&gt;
To control a motor, it requires a 'motor driver'.&lt;br /&gt;
&lt;br /&gt;
= Voltages =&lt;br /&gt;
Although there exist 12V motors and 24V motors, as in all modern systems, the Ardumower uses 24V motors. The reason is as follows:&lt;br /&gt;
&lt;br /&gt;
Assuming that the motor consumes 50W, using 24V results to a motor current: 50W / 24V = 2A.&lt;br /&gt;
&lt;br /&gt;
Assuming that the motor consumes 50W, using 12V results to a motor current: 50W / 12V = 4A.&lt;br /&gt;
&lt;br /&gt;
The higher the current (A), the more problems arise:&lt;br /&gt;
&lt;br /&gt;
* The motor driver must be suitable for higher current (more expensive)&lt;br /&gt;
* The PCB traces need to be more thick (more expensive)&lt;br /&gt;
* The rechargable battery need to support higher current (more expensive)&lt;br /&gt;
&lt;br /&gt;
So, that's the reason why Ardumower is designed as a 24V system.&lt;br /&gt;
&lt;br /&gt;
= Wheel motors =&lt;br /&gt;
&amp;lt;gallery&amp;gt;&lt;br /&gt;
  File: ardumower_motor.jpg | Ardumower gear motor with encoder (8mm diameter, 5900 rpm motor, 0.055 Nm, gear ratio 1/212, output torque 2.45Nm, output rpm 31)&lt;br /&gt;
  File: wheel_motor_diagram.png | Ardumower gear motor curve (motor only)&lt;br /&gt;
  File:decrease_motor_noise.png | Decrease motor noise&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
The two left and right gear motors are controlled independently (aka 'differential driving') to:&lt;br /&gt;
&lt;br /&gt;
* drive the robot forward/backward&lt;br /&gt;
* steer the robot left/right&lt;br /&gt;
&lt;br /&gt;
The Ardumower wheel motor features:&lt;br /&gt;
* A rotation speed up to 31 rpm allows to move the robot at sufficient speed (at up to meter/sec = 31rpm/60 * PI * 0.25m  = 0.4m/sec using 250mm diameter wheels)&lt;br /&gt;
* A high torque (2.45Nm) guarantees that the robot can climb small hills as well (with 2 motors, 0.125 radius wheel, 31rpm = 0.4m/s, acceleration = 0.2 ( 1/2 of nomeinal speed) up to 14 degree) [http://www.robotshop.com/blog/en/drive-motor-sizing-tool-9698 see calculator]&lt;br /&gt;
* Integrated encoders, so it can measure the rotation speed, the distance and the direction (see [[Odometry]] for more information) - Encoders are REQUIRED for Ardumower software.&lt;br /&gt;
* 24V  (load current ~1A)&lt;br /&gt;
&lt;br /&gt;
= Motor driver =&lt;br /&gt;
A motor driver is a circuit that allows current to flow either one direction or the opposite direction through the motor - depending on wether the motor should turn forward or backward (so called 'H-bridge'). There are many motor drivers available as ready-circuit boards, some can even control two motors  (Dual H-Bridge) - if you connect two of their H-bridges in parallel, the maximum motor current can be increased.&lt;br /&gt;
&lt;br /&gt;
If the direction of the motor does not need to be controlled, (e.g. for the blades), you do not need an H-bridge, but instead a simple 'switch' (e.g. MOSFET-transistor-circuit).&lt;br /&gt;
&lt;br /&gt;
The motor driver is connected through control signals to the Arduino. Example:&lt;br /&gt;
&lt;br /&gt;
  Arduino Digital Pin  —&amp;gt;  MOTOR-Direction Pin (DIR)&lt;br /&gt;
  Arduino PWM Pin      —&amp;gt;  MOTOR-Speed Pin (PWM)&lt;br /&gt;
  Arduino Analog Pin   &amp;lt;—  MOTOR-Current Sensor Pin&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
One pin controls the direction (forward/backward), the other pin controls the speed. One analog input pin is connected to the current sensor. The current sensor module (ACS712-05A) is connected in series with the motor.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery&amp;gt;&lt;br /&gt;
File:Ardumower_motor_driver_circuit.png | NOTE: only for demonstration! See real [http://wiki.ardumower.de/index.php?title=Ardumower_PCB schematics] for concrete wiring&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== PWM frequency ==&lt;br /&gt;
The speed of the motor is controlled by a PWM duty signal. We use the Arduino default PWM frequency (490 Hz) to control the motor drivers.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery&amp;gt;&lt;br /&gt;
File: Arduino_pwm.png | Arduino PWM duty signal&lt;br /&gt;
File: Pwm_490hz.png | PWM 490 Hz: odometry ticks, sense (current) &lt;br /&gt;
File: Pwm_3khz.png | PWM 3.9 Khz: odometry ticks, sense (current) &lt;br /&gt;
File: Pwm_20khz.png | PWM 20 Khz: odometry ticks, sense (current) &lt;br /&gt;
File: Pwm_31khz.png | PWM 31 Khz: odometry ticks, sense (current) &lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Popular modules ==&lt;br /&gt;
=== MC33926 (recommended) ===&lt;br /&gt;
&lt;br /&gt;
Особенности: up to 3A with integrated current sensor and thermal shut-down protection, for all kind of robot mowers) &lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery&amp;gt;&lt;br /&gt;
File:Mc33926.jpg | pinout&lt;br /&gt;
File:Mc33926_example.jpg | jumpers&lt;br /&gt;
File:MC33926_schematics.jpg | schematics&lt;br /&gt;
File:Mc33926_current_limiter.jpg | automatic current limiter&lt;br /&gt;
File:Motor_pwm_50_percent_transients.jpg | Motor start 50% PWM transients&lt;br /&gt;
File:driver_hw_protection.png | Peak/EMF protection&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''&lt;br /&gt;
 M1_FB     --- pinMotorLeftSense A1&lt;br /&gt;
 M1_SF     --- pinMotorLeftFault 25&lt;br /&gt;
 M1_PWM_D1 --- connect with jumper to GND&lt;br /&gt;
 M1_PWM_D2 --- connect with jumper to VDD&lt;br /&gt;
 M1_IN1    --- pinMotorLeftPWM 5  &lt;br /&gt;
 M1_IN2    --- pinMotorLeftDir 31&lt;br /&gt;
 EN        --- pinMotorEnable  37&lt;br /&gt;
 M2_FB     --- pinMotorRightSense A0&lt;br /&gt;
 M2_SF     --- pinMotorRightFault 27&lt;br /&gt;
 M2_PWM_D1 --- connect with jumper to GND&lt;br /&gt;
 M2_PWM_D2 --- connect with jumper to VDD&lt;br /&gt;
 M2_IN1    --- pinMotorRightPWM  3 &lt;br /&gt;
 M2_IN2    --- pinMotorRightDir 33&lt;br /&gt;
 EN        --- pinMotorEnable  37&lt;br /&gt;
 VDD       --- Arduino 5V&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== IBT-2 (BTS7960/BTN7960) ===&lt;br /&gt;
&amp;lt;gallery&amp;gt;&lt;br /&gt;
  File: BTS7960B_motor_driver.jpg | Модуль BTS7960B&lt;br /&gt;
  File: BTS7960B_motor_driver1.jpg | Модуль BTS7960B&lt;br /&gt;
  File: BTS7960B_motor_driver2.jpg | Модуль BTS7960B&lt;br /&gt;
  File: BTS7960B_motor_driver_sch.jpg | Схема модуля BTS7960B&lt;br /&gt;
  File: BTS7960B_HBridgemontage-635056137829375000.jpg | Схема подключения&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Особенности: 5.5-27V, 43A (цена 9 USD)&lt;br /&gt;
&lt;br /&gt;
На один двигатель требуется один модуль.&lt;br /&gt;
&lt;br /&gt;
[http://www.instructables.com/id/Motor-Driver-BTS7960-43A/?ALLSTEPS пример подключения]&lt;br /&gt;
&lt;br /&gt;
 BTS7960B GND      --- GND&lt;br /&gt;
 BTS7960B VCC      --- Arduino 5V&lt;br /&gt;
 BTS7960B R_IS     --- нет&lt;br /&gt;
 BTS7960B L_IS     --- нет&lt;br /&gt;
 BTS7960B R_EN     --- Arduino MOTOR_DIR pinMotorRightDir 33&lt;br /&gt;
 BTS7960B L_EN     --- Arduino MOTOR_DIR pinMotorLeftDir 31&lt;br /&gt;
 BTS7960B R_PWM    --- Arduino MOTOR_PWM pinMotorRightPWM  3 &lt;br /&gt;
 BTS7960B L_PWM    --- Arduino MOTOR_PWM pinMotorLeftPWM 5 &lt;br /&gt;
 BTS7960B MOTOR(+) --- motor(+)&lt;br /&gt;
 BTS7960B MOTOR(-) --- motor(-)&lt;br /&gt;
 BTS7960B POWER(+) --- battery(+)&lt;br /&gt;
 BTS7960B POWER(-) --- battery(-)&lt;br /&gt;
&lt;br /&gt;
=== L6201P ===&lt;br /&gt;
&amp;lt;gallery&amp;gt;&lt;br /&gt;
  File: L6201P_motor_driver.jpg | L6201P PCB&lt;br /&gt;
  File: L6201p.png | L6201P datasheet&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Особенности: 48V, 4A&lt;br /&gt;
&lt;br /&gt;
 B+     power supply output voltage equal to the power connector&lt;br /&gt;
 GND    GND&lt;br /&gt;
 EN     driver enable&lt;br /&gt;
 RPWM   forward PWM signal, active HIGH&lt;br /&gt;
 LPWM   reverse PWM signal, active HIGH&lt;br /&gt;
 CT     current signal output&lt;br /&gt;
 VT     voltage signal output&lt;br /&gt;
&lt;br /&gt;
 Forward   EN=1, RPWM=PWM, LPWM=0&lt;br /&gt;
 Reverse   EN=1, RPWM=0,   LPWM=PWM  (also possible?   EN=1, RPWM=255-PWM, LPWM=1  =&amp;gt; needs to be verified!)&lt;br /&gt;
 Brake     EN=1, RPWM=0,   LPWM=0&lt;br /&gt;
 Not brake EN=0, RPWM=x,   LPWM=x&lt;br /&gt;
 Note: 1=High level (3.3-5v), 0=Low level (0V or GND)&lt;br /&gt;
&lt;br /&gt;
=== L9958 ===&lt;br /&gt;
Особенности: Arduino 240W H-bridge Motor Driver Board - SX8847, up to 8A &lt;br /&gt;
&lt;br /&gt;
Note that this module has an on-board [http://en.wikipedia.org/wiki/78xx linear voltage regulator], which converts the input POWER (typically 24 or 12V) to 5V. Some modules do this with a single voltage regulator (chip VR1 on the module), or in a two-staged approach (VR1 and U2). &lt;br /&gt;
&lt;br /&gt;
Converting 24V to 5V with a linear voltage regulator is very inefficient (current in = current out, so if you need 100mA at 5V, the linear voltage regulator requires 100mA at 24V, so you loose 1.9W in this module). Therefore, it is recommended to disconnect the linear voltage regulator from the board, and use the 5V from the switched mode power supply. &lt;br /&gt;
&lt;br /&gt;
 L9958 GND---GND&lt;br /&gt;
 L9958 VCC---Arduino 5V&lt;br /&gt;
 L9958 EN---Arduino 5V&lt;br /&gt;
 L9958 DI---GND&lt;br /&gt;
 L9958 DIR---Arduino MOTOR_DIR&lt;br /&gt;
 L9958 PWM---Arduino MOTOR_PWM&lt;br /&gt;
 L9958 MOTOR(+)---motor(+)&lt;br /&gt;
 L9958 MOTOR(-)---motor(-)&lt;br /&gt;
 L9958 POWER(+)---battery(+)&lt;br /&gt;
 L9958 POWER(-)---battery(-)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery&amp;gt;&lt;br /&gt;
  File: Motor_driver_L9958.jpg&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== L298N ===&lt;br /&gt;
Особенности: up to 4A &lt;br /&gt;
Notice: When using a L298N-motor driver, both H-bridges (2A) should be connected in parallel, so that both bridges drive a single motor (max. 4A):&lt;br /&gt;
&lt;br /&gt;
Connect in parallel:&lt;br /&gt;
 IN1 with IN4&lt;br /&gt;
 IN2 with IN3&lt;br /&gt;
 OUT1 with OUT4&lt;br /&gt;
 OUT2 with OUT3&lt;br /&gt;
(Do NOT disconnect the SENSE-lines, except when you want to measure current by a 'shunt' resistor).&lt;br /&gt;
&lt;br /&gt;
Make sure there is a jumper on both ENA and ENB. Also, make sure there is a jumper on S1.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery&amp;gt;&lt;br /&gt;
File: Motordriver_l298n.JPG | driver &lt;br /&gt;
File: L298driver.jpg | double current&lt;br /&gt;
File: L298N_schematics.jpg | schematics&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= Mower motor and driver =&lt;br /&gt;
&amp;lt;gallery&amp;gt;&lt;br /&gt;
File: ardumower_mower_motor.jpg | Ardumower mower motor&lt;br /&gt;
File: Mower_motor_curve.png | Ardumower mower motor curve&lt;br /&gt;
File: Mower2_start_current.png | Mower start current&lt;br /&gt;
File: Mower4_blocked_500ms_detect_5s_wait.png | Mower blocked, 500ms detection (max), waittime: 5sec (min)&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
The Ardumower mower motor features:&lt;br /&gt;
* Fast enough to cut the lawn (3150 rpm)&lt;br /&gt;
* Enough torque (140 mNm / 46 W)&lt;br /&gt;
* Quiet mowing (you cannot hear it)&lt;br /&gt;
* 24V, load current ~1.0A  (L=2.8mH, R=1.9ohm)&lt;br /&gt;
&lt;br /&gt;
For a the mowing motor, a MOSFET circuit is used. The MOSFET transistor IRLIZ44N (alternatives: IRF1404, IRL540N, RFP30N06LE, FQP30N06L) can already switch a current of 30A at the Arduino 5V control signal (N-LogL). The 10K resistor pulls down to ground when the Arduino starts. The 180 Ohm resistor limits the current at the Gate caused by level switches to about 30mA. The diode (MBR1045) protects  the circuit against current caused by motor induction. A current sensor module (ACS712-30A) is connected in series with the motor.&lt;br /&gt;
&lt;br /&gt;
[[File:warning.png]]'''Security note: For security reasons, always remove mower blades in your first tests!'''&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery&amp;gt;&lt;br /&gt;
File: Ardumower_mower_motor_circuit.png | NOTE: only for demonstration! See real [http://wiki.ardumower.de/index.php?title=Ardumower_PCB schematics] for concrete wiring&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= Choosing a driver =&lt;br /&gt;
&lt;br /&gt;
When purchasing a motor driver, consider...&lt;br /&gt;
* max. thermal load (short-circuit current)&lt;br /&gt;
* price&lt;br /&gt;
&lt;br /&gt;
= Starting current =&lt;br /&gt;
Here are some measurements of the Ardumower motor's starting current (peak):&lt;br /&gt;
&lt;br /&gt;
Starting current:&lt;br /&gt;
* Gear motor: 15A (starting current peak)&lt;br /&gt;
* Mowing motor: 20A (starting current peak)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery&amp;gt;&lt;br /&gt;
File: Messung_einschalt_spitzen.jpg | Gear motor start current (peak)&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= Short-circuit current =&lt;br /&gt;
To not damage the motor driver on the first run, find out the maximum current that can flow through your motors. In other words, find out the 'short-circuit' current. Typical measurement installation:&lt;br /&gt;
&lt;br /&gt;
Battery === Ampere meter === Motor&lt;br /&gt;
&lt;br /&gt;
The Amperemeter (e.g. model making) should be able to measure the maximum current (e.g. 30A). The motor to be measured is mechanically blocked (so it cannot rotate).&lt;br /&gt;
&lt;br /&gt;
'''Warning'''&lt;br /&gt;
&lt;br /&gt;
* always remove blades&lt;br /&gt;
* only connect battery for a short period (1-5 seconds)&lt;br /&gt;
* always use cables with sufficient wire cross section&lt;br /&gt;
&lt;br /&gt;
Example measurement:&lt;br /&gt;
&lt;br /&gt;
* Rotenbach SPM08-320&lt;br /&gt;
** Wheel motor: 8A&lt;br /&gt;
** Mowing motor:&lt;br /&gt;
&lt;br /&gt;
* Ambrogio L50&lt;br /&gt;
** Wheel motor: 4,5A&lt;br /&gt;
** Mowing motor: 22A&lt;br /&gt;
&lt;br /&gt;
* Tianchen TC-G158&lt;br /&gt;
** Wheel motor: 5,4A&lt;br /&gt;
** Mowing motor: 16A (both 32A)&lt;br /&gt;
&lt;br /&gt;
The measured current will only flow in 'worst-case' scenarios, which means when the motor starts or when it is blocked and it will only flow for a short time  (as your battery might not deliver the high current constantly, and so current and voltage will break down).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Current sensor =&lt;br /&gt;
To detect certain conditions (robot drives against obstacle, motor blocks etc.), the motor current should be monitored constantly. There are two approaches for sensing current.&lt;br /&gt;
&lt;br /&gt;
== Approach &amp;quot;Hall sensor module&amp;quot; ==&lt;br /&gt;
This is the recommended approach for sensing current. These current sensor modules are available for different current ranges.&lt;br /&gt;
&lt;br /&gt;
* ACS712ELC-05A (185mV/A, max. 5A)&lt;br /&gt;
* ACS712ELC-20A (100mV/A, max. 20A)&lt;br /&gt;
* ACS712ELC-30A (66mV/A, max. 30A)&lt;br /&gt;
* The lower the range, the more precise the measurement.&lt;br /&gt;
&lt;br /&gt;
== Approach &amp;quot;Shunt resistor (circuit)&amp;quot; ==&lt;br /&gt;
The current flows across a very small resistor (0.5 Ohm) and the voltage drop is measured&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery&amp;gt;&lt;br /&gt;
File: L298n_module_circuit.jpg &lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=Further links=&lt;br /&gt;
#[http://www.ardumower.de/index.php/en/forum/maehwerk/74-10a-pwm-controller-modul-fuer-den-arduino 10A PWM controller module modification]&lt;/div&gt;</summary>
		<author><name>Unlogic</name></author>	</entry>

	<entry>
		<id>https://wiki.ardumower.de/index.php?title=Motor_driver_ru&amp;diff=2757</id>
		<title>Motor driver ru</title>
		<link rel="alternate" type="text/html" href="https://wiki.ardumower.de/index.php?title=Motor_driver_ru&amp;diff=2757"/>
				<updated>2015-08-30T13:58:13Z</updated>
		
		<summary type="html">&lt;p&gt;Unlogic: /* BTS7960B */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Описание =&lt;br /&gt;
Ardumower's design uses two different types of motors (all motors can be purchased via the [https://www.marotronics.de/index.php?k=7 shop] [[File: shopping.png|link=https://www.marotronics.de/index.php?k=7]]):&lt;br /&gt;
* Two motors (with integrated gearing) for driving (wheel motors), and encoder (for distance, direction and speed control)&lt;br /&gt;
* One motor (with high rotation speed) for mowing (mower motor)&lt;br /&gt;
&lt;br /&gt;
To control a motor, it requires a 'motor driver'.&lt;br /&gt;
&lt;br /&gt;
= Voltages =&lt;br /&gt;
Although there exist 12V motors and 24V motors, as in all modern systems, the Ardumower uses 24V motors. The reason is as follows:&lt;br /&gt;
&lt;br /&gt;
Assuming that the motor consumes 50W, using 24V results to a motor current: 50W / 24V = 2A.&lt;br /&gt;
&lt;br /&gt;
Assuming that the motor consumes 50W, using 12V results to a motor current: 50W / 12V = 4A.&lt;br /&gt;
&lt;br /&gt;
The higher the current (A), the more problems arise:&lt;br /&gt;
&lt;br /&gt;
* The motor driver must be suitable for higher current (more expensive)&lt;br /&gt;
* The PCB traces need to be more thick (more expensive)&lt;br /&gt;
* The rechargable battery need to support higher current (more expensive)&lt;br /&gt;
&lt;br /&gt;
So, that's the reason why Ardumower is designed as a 24V system.&lt;br /&gt;
&lt;br /&gt;
= Wheel motors =&lt;br /&gt;
&amp;lt;gallery&amp;gt;&lt;br /&gt;
  File: ardumower_motor.jpg | Ardumower gear motor with encoder (8mm diameter, 5900 rpm motor, 0.055 Nm, gear ratio 1/212, output torque 2.45Nm, output rpm 31)&lt;br /&gt;
  File: wheel_motor_diagram.png | Ardumower gear motor curve (motor only)&lt;br /&gt;
  File:decrease_motor_noise.png | Decrease motor noise&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
The two left and right gear motors are controlled independently (aka 'differential driving') to:&lt;br /&gt;
&lt;br /&gt;
* drive the robot forward/backward&lt;br /&gt;
* steer the robot left/right&lt;br /&gt;
&lt;br /&gt;
The Ardumower wheel motor features:&lt;br /&gt;
* A rotation speed up to 31 rpm allows to move the robot at sufficient speed (at up to meter/sec = 31rpm/60 * PI * 0.25m  = 0.4m/sec using 250mm diameter wheels)&lt;br /&gt;
* A high torque (2.45Nm) guarantees that the robot can climb small hills as well (with 2 motors, 0.125 radius wheel, 31rpm = 0.4m/s, acceleration = 0.2 ( 1/2 of nomeinal speed) up to 14 degree) [http://www.robotshop.com/blog/en/drive-motor-sizing-tool-9698 see calculator]&lt;br /&gt;
* Integrated encoders, so it can measure the rotation speed, the distance and the direction (see [[Odometry]] for more information) - Encoders are REQUIRED for Ardumower software.&lt;br /&gt;
* 24V  (load current ~1A)&lt;br /&gt;
&lt;br /&gt;
= Motor driver =&lt;br /&gt;
A motor driver is a circuit that allows current to flow either one direction or the opposite direction through the motor - depending on wether the motor should turn forward or backward (so called 'H-bridge'). There are many motor drivers available as ready-circuit boards, some can even control two motors  (Dual H-Bridge) - if you connect two of their H-bridges in parallel, the maximum motor current can be increased.&lt;br /&gt;
&lt;br /&gt;
If the direction of the motor does not need to be controlled, (e.g. for the blades), you do not need an H-bridge, but instead a simple 'switch' (e.g. MOSFET-transistor-circuit).&lt;br /&gt;
&lt;br /&gt;
The motor driver is connected through control signals to the Arduino. Example:&lt;br /&gt;
&lt;br /&gt;
  Arduino Digital Pin  —&amp;gt;  MOTOR-Direction Pin (DIR)&lt;br /&gt;
  Arduino PWM Pin      —&amp;gt;  MOTOR-Speed Pin (PWM)&lt;br /&gt;
  Arduino Analog Pin   &amp;lt;—  MOTOR-Current Sensor Pin&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
One pin controls the direction (forward/backward), the other pin controls the speed. One analog input pin is connected to the current sensor. The current sensor module (ACS712-05A) is connected in series with the motor.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery&amp;gt;&lt;br /&gt;
File:Ardumower_motor_driver_circuit.png | NOTE: only for demonstration! See real [http://wiki.ardumower.de/index.php?title=Ardumower_PCB schematics] for concrete wiring&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== PWM frequency ==&lt;br /&gt;
The speed of the motor is controlled by a PWM duty signal. We use the Arduino default PWM frequency (490 Hz) to control the motor drivers.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery&amp;gt;&lt;br /&gt;
File: Arduino_pwm.png | Arduino PWM duty signal&lt;br /&gt;
File: Pwm_490hz.png | PWM 490 Hz: odometry ticks, sense (current) &lt;br /&gt;
File: Pwm_3khz.png | PWM 3.9 Khz: odometry ticks, sense (current) &lt;br /&gt;
File: Pwm_20khz.png | PWM 20 Khz: odometry ticks, sense (current) &lt;br /&gt;
File: Pwm_31khz.png | PWM 31 Khz: odometry ticks, sense (current) &lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Popular modules ==&lt;br /&gt;
=== MC33926 (recommended) ===&lt;br /&gt;
&lt;br /&gt;
Особенности: up to 3A with integrated current sensor and thermal shut-down protection, for all kind of robot mowers) &lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery&amp;gt;&lt;br /&gt;
File:Mc33926.jpg | pinout&lt;br /&gt;
File:Mc33926_example.jpg | jumpers&lt;br /&gt;
File:MC33926_schematics.jpg | schematics&lt;br /&gt;
File:Mc33926_current_limiter.jpg | automatic current limiter&lt;br /&gt;
File:Motor_pwm_50_percent_transients.jpg | Motor start 50% PWM transients&lt;br /&gt;
File:driver_hw_protection.png | Peak/EMF protection&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''&lt;br /&gt;
 M1_FB     --- pinMotorLeftSense A1&lt;br /&gt;
 M1_SF     --- pinMotorLeftFault 25&lt;br /&gt;
 M1_PWM_D1 --- connect with jumper to GND&lt;br /&gt;
 M1_PWM_D2 --- connect with jumper to VDD&lt;br /&gt;
 M1_IN1    --- pinMotorLeftPWM 5  &lt;br /&gt;
 M1_IN2    --- pinMotorLeftDir 31&lt;br /&gt;
 EN        --- pinMotorEnable  37&lt;br /&gt;
 M2_FB     --- pinMotorRightSense A0&lt;br /&gt;
 M2_SF     --- pinMotorRightFault 27&lt;br /&gt;
 M2_PWM_D1 --- connect with jumper to GND&lt;br /&gt;
 M2_PWM_D2 --- connect with jumper to VDD&lt;br /&gt;
 M2_IN1    --- pinMotorRightPWM  3 &lt;br /&gt;
 M2_IN2    --- pinMotorRightDir 33&lt;br /&gt;
 EN        --- pinMotorEnable  37&lt;br /&gt;
 VDD       --- Arduino 5V&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== BTS7960B / BTN7960B===&lt;br /&gt;
&amp;lt;gallery&amp;gt;&lt;br /&gt;
  File: BTS7960B_motor_driver.jpg | Модуль BTS7960B&lt;br /&gt;
  File: BTS7960B_motor_driver1.jpg | Модуль BTS7960B&lt;br /&gt;
  File: BTS7960B_motor_driver2.jpg | Модуль BTS7960B&lt;br /&gt;
  File: BTS7960B_motor_driver_sch.jpg | Схема модуля BTS7960B&lt;br /&gt;
  File: BTS7960B_HBridgemontage-635056137829375000.jpg | Схема подключения&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Особенности: 5.5-27V, 43A (цена 9 USD)&lt;br /&gt;
&lt;br /&gt;
На один двигатель требуется один модуль.&lt;br /&gt;
&lt;br /&gt;
[http://www.instructables.com/id/Motor-Driver-BTS7960-43A/?ALLSTEPS пример подключения]&lt;br /&gt;
&lt;br /&gt;
 BTS7960B GND      --- GND&lt;br /&gt;
 BTS7960B VCC      --- Arduino 5V&lt;br /&gt;
 BTS7960B R_IS     --- нет&lt;br /&gt;
 BTS7960B L_IS     --- нет&lt;br /&gt;
 BTS7960B R_EN     --- Arduino MOTOR_DIR pinMotorRightDir 33&lt;br /&gt;
 BTS7960B L_EN     --- Arduino MOTOR_DIR pinMotorLeftDir 31&lt;br /&gt;
 BTS7960B R_PWM    --- Arduino MOTOR_PWM pinMotorRightPWM  3 &lt;br /&gt;
 BTS7960B L_PWM    --- Arduino MOTOR_PWM pinMotorLeftPWM 5 &lt;br /&gt;
 BTS7960B MOTOR(+) --- motor(+)&lt;br /&gt;
 BTS7960B MOTOR(-) --- motor(-)&lt;br /&gt;
 BTS7960B POWER(+) --- battery(+)&lt;br /&gt;
 BTS7960B POWER(-) --- battery(-)&lt;br /&gt;
&lt;br /&gt;
=== L6201P ===&lt;br /&gt;
&amp;lt;gallery&amp;gt;&lt;br /&gt;
  File: L6201P_motor_driver.jpg | L6201P PCB&lt;br /&gt;
  File: L6201p.png | L6201P datasheet&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Особенности: 48V, 4A&lt;br /&gt;
&lt;br /&gt;
 B+     power supply output voltage equal to the power connector&lt;br /&gt;
 GND    GND&lt;br /&gt;
 EN     driver enable&lt;br /&gt;
 RPWM   forward PWM signal, active HIGH&lt;br /&gt;
 LPWM   reverse PWM signal, active HIGH&lt;br /&gt;
 CT     current signal output&lt;br /&gt;
 VT     voltage signal output&lt;br /&gt;
&lt;br /&gt;
 Forward   EN=1, RPWM=PWM, LPWM=0&lt;br /&gt;
 Reverse   EN=1, RPWM=0,   LPWM=PWM  (also possible?   EN=1, RPWM=255-PWM, LPWM=1  =&amp;gt; needs to be verified!)&lt;br /&gt;
 Brake     EN=1, RPWM=0,   LPWM=0&lt;br /&gt;
 Not brake EN=0, RPWM=x,   LPWM=x&lt;br /&gt;
 Note: 1=High level (3.3-5v), 0=Low level (0V or GND)&lt;br /&gt;
&lt;br /&gt;
=== L9958 ===&lt;br /&gt;
Особенности: Arduino 240W H-bridge Motor Driver Board - SX8847, up to 8A &lt;br /&gt;
&lt;br /&gt;
Note that this module has an on-board [http://en.wikipedia.org/wiki/78xx linear voltage regulator], which converts the input POWER (typically 24 or 12V) to 5V. Some modules do this with a single voltage regulator (chip VR1 on the module), or in a two-staged approach (VR1 and U2). &lt;br /&gt;
&lt;br /&gt;
Converting 24V to 5V with a linear voltage regulator is very inefficient (current in = current out, so if you need 100mA at 5V, the linear voltage regulator requires 100mA at 24V, so you loose 1.9W in this module). Therefore, it is recommended to disconnect the linear voltage regulator from the board, and use the 5V from the switched mode power supply. &lt;br /&gt;
&lt;br /&gt;
 L9958 GND---GND&lt;br /&gt;
 L9958 VCC---Arduino 5V&lt;br /&gt;
 L9958 EN---Arduino 5V&lt;br /&gt;
 L9958 DI---GND&lt;br /&gt;
 L9958 DIR---Arduino MOTOR_DIR&lt;br /&gt;
 L9958 PWM---Arduino MOTOR_PWM&lt;br /&gt;
 L9958 MOTOR(+)---motor(+)&lt;br /&gt;
 L9958 MOTOR(-)---motor(-)&lt;br /&gt;
 L9958 POWER(+)---battery(+)&lt;br /&gt;
 L9958 POWER(-)---battery(-)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery&amp;gt;&lt;br /&gt;
  File: Motor_driver_L9958.jpg&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== L298N ===&lt;br /&gt;
Особенности: up to 4A &lt;br /&gt;
Notice: When using a L298N-motor driver, both H-bridges (2A) should be connected in parallel, so that both bridges drive a single motor (max. 4A):&lt;br /&gt;
&lt;br /&gt;
Connect in parallel:&lt;br /&gt;
 IN1 with IN4&lt;br /&gt;
 IN2 with IN3&lt;br /&gt;
 OUT1 with OUT4&lt;br /&gt;
 OUT2 with OUT3&lt;br /&gt;
(Do NOT disconnect the SENSE-lines, except when you want to measure current by a 'shunt' resistor).&lt;br /&gt;
&lt;br /&gt;
Make sure there is a jumper on both ENA and ENB. Also, make sure there is a jumper on S1.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery&amp;gt;&lt;br /&gt;
File: Motordriver_l298n.JPG | driver &lt;br /&gt;
File: L298driver.jpg | double current&lt;br /&gt;
File: L298N_schematics.jpg | schematics&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= Mower motor and driver =&lt;br /&gt;
&amp;lt;gallery&amp;gt;&lt;br /&gt;
File: ardumower_mower_motor.jpg | Ardumower mower motor&lt;br /&gt;
File: Mower_motor_curve.png | Ardumower mower motor curve&lt;br /&gt;
File: Mower2_start_current.png | Mower start current&lt;br /&gt;
File: Mower4_blocked_500ms_detect_5s_wait.png | Mower blocked, 500ms detection (max), waittime: 5sec (min)&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
The Ardumower mower motor features:&lt;br /&gt;
* Fast enough to cut the lawn (3150 rpm)&lt;br /&gt;
* Enough torque (140 mNm / 46 W)&lt;br /&gt;
* Quiet mowing (you cannot hear it)&lt;br /&gt;
* 24V, load current ~1.0A  (L=2.8mH, R=1.9ohm)&lt;br /&gt;
&lt;br /&gt;
For a the mowing motor, a MOSFET circuit is used. The MOSFET transistor IRLIZ44N (alternatives: IRF1404, IRL540N, RFP30N06LE, FQP30N06L) can already switch a current of 30A at the Arduino 5V control signal (N-LogL). The 10K resistor pulls down to ground when the Arduino starts. The 180 Ohm resistor limits the current at the Gate caused by level switches to about 30mA. The diode (MBR1045) protects  the circuit against current caused by motor induction. A current sensor module (ACS712-30A) is connected in series with the motor.&lt;br /&gt;
&lt;br /&gt;
[[File:warning.png]]'''Security note: For security reasons, always remove mower blades in your first tests!'''&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery&amp;gt;&lt;br /&gt;
File: Ardumower_mower_motor_circuit.png | NOTE: only for demonstration! See real [http://wiki.ardumower.de/index.php?title=Ardumower_PCB schematics] for concrete wiring&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= Choosing a driver =&lt;br /&gt;
&lt;br /&gt;
When purchasing a motor driver, consider...&lt;br /&gt;
* max. thermal load (short-circuit current)&lt;br /&gt;
* price&lt;br /&gt;
&lt;br /&gt;
= Starting current =&lt;br /&gt;
Here are some measurements of the Ardumower motor's starting current (peak):&lt;br /&gt;
&lt;br /&gt;
Starting current:&lt;br /&gt;
* Gear motor: 15A (starting current peak)&lt;br /&gt;
* Mowing motor: 20A (starting current peak)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery&amp;gt;&lt;br /&gt;
File: Messung_einschalt_spitzen.jpg | Gear motor start current (peak)&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= Short-circuit current =&lt;br /&gt;
To not damage the motor driver on the first run, find out the maximum current that can flow through your motors. In other words, find out the 'short-circuit' current. Typical measurement installation:&lt;br /&gt;
&lt;br /&gt;
Battery === Ampere meter === Motor&lt;br /&gt;
&lt;br /&gt;
The Amperemeter (e.g. model making) should be able to measure the maximum current (e.g. 30A). The motor to be measured is mechanically blocked (so it cannot rotate).&lt;br /&gt;
&lt;br /&gt;
'''Warning'''&lt;br /&gt;
&lt;br /&gt;
* always remove blades&lt;br /&gt;
* only connect battery for a short period (1-5 seconds)&lt;br /&gt;
* always use cables with sufficient wire cross section&lt;br /&gt;
&lt;br /&gt;
Example measurement:&lt;br /&gt;
&lt;br /&gt;
* Rotenbach SPM08-320&lt;br /&gt;
** Wheel motor: 8A&lt;br /&gt;
** Mowing motor:&lt;br /&gt;
&lt;br /&gt;
* Ambrogio L50&lt;br /&gt;
** Wheel motor: 4,5A&lt;br /&gt;
** Mowing motor: 22A&lt;br /&gt;
&lt;br /&gt;
* Tianchen TC-G158&lt;br /&gt;
** Wheel motor: 5,4A&lt;br /&gt;
** Mowing motor: 16A (both 32A)&lt;br /&gt;
&lt;br /&gt;
The measured current will only flow in 'worst-case' scenarios, which means when the motor starts or when it is blocked and it will only flow for a short time  (as your battery might not deliver the high current constantly, and so current and voltage will break down).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Current sensor =&lt;br /&gt;
To detect certain conditions (robot drives against obstacle, motor blocks etc.), the motor current should be monitored constantly. There are two approaches for sensing current.&lt;br /&gt;
&lt;br /&gt;
== Approach &amp;quot;Hall sensor module&amp;quot; ==&lt;br /&gt;
This is the recommended approach for sensing current. These current sensor modules are available for different current ranges.&lt;br /&gt;
&lt;br /&gt;
* ACS712ELC-05A (185mV/A, max. 5A)&lt;br /&gt;
* ACS712ELC-20A (100mV/A, max. 20A)&lt;br /&gt;
* ACS712ELC-30A (66mV/A, max. 30A)&lt;br /&gt;
* The lower the range, the more precise the measurement.&lt;br /&gt;
&lt;br /&gt;
== Approach &amp;quot;Shunt resistor (circuit)&amp;quot; ==&lt;br /&gt;
The current flows across a very small resistor (0.5 Ohm) and the voltage drop is measured&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery&amp;gt;&lt;br /&gt;
File: L298n_module_circuit.jpg &lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=Further links=&lt;br /&gt;
#[http://www.ardumower.de/index.php/en/forum/maehwerk/74-10a-pwm-controller-modul-fuer-den-arduino 10A PWM controller module modification]&lt;/div&gt;</summary>
		<author><name>Unlogic</name></author>	</entry>

	<entry>
		<id>https://wiki.ardumower.de/index.php?title=Datei:BTS7960B_HBridgemontage-635056137829375000.jpg&amp;diff=2756</id>
		<title>Datei:BTS7960B HBridgemontage-635056137829375000.jpg</title>
		<link rel="alternate" type="text/html" href="https://wiki.ardumower.de/index.php?title=Datei:BTS7960B_HBridgemontage-635056137829375000.jpg&amp;diff=2756"/>
				<updated>2015-08-30T13:56:52Z</updated>
		
		<summary type="html">&lt;p&gt;Unlogic: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Unlogic</name></author>	</entry>

	<entry>
		<id>https://wiki.ardumower.de/index.php?title=Motor_driver_ru&amp;diff=2755</id>
		<title>Motor driver ru</title>
		<link rel="alternate" type="text/html" href="https://wiki.ardumower.de/index.php?title=Motor_driver_ru&amp;diff=2755"/>
				<updated>2015-08-30T13:51:50Z</updated>
		
		<summary type="html">&lt;p&gt;Unlogic: /* BTS7960B */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Описание =&lt;br /&gt;
Ardumower's design uses two different types of motors (all motors can be purchased via the [https://www.marotronics.de/index.php?k=7 shop] [[File: shopping.png|link=https://www.marotronics.de/index.php?k=7]]):&lt;br /&gt;
* Two motors (with integrated gearing) for driving (wheel motors), and encoder (for distance, direction and speed control)&lt;br /&gt;
* One motor (with high rotation speed) for mowing (mower motor)&lt;br /&gt;
&lt;br /&gt;
To control a motor, it requires a 'motor driver'.&lt;br /&gt;
&lt;br /&gt;
= Voltages =&lt;br /&gt;
Although there exist 12V motors and 24V motors, as in all modern systems, the Ardumower uses 24V motors. The reason is as follows:&lt;br /&gt;
&lt;br /&gt;
Assuming that the motor consumes 50W, using 24V results to a motor current: 50W / 24V = 2A.&lt;br /&gt;
&lt;br /&gt;
Assuming that the motor consumes 50W, using 12V results to a motor current: 50W / 12V = 4A.&lt;br /&gt;
&lt;br /&gt;
The higher the current (A), the more problems arise:&lt;br /&gt;
&lt;br /&gt;
* The motor driver must be suitable for higher current (more expensive)&lt;br /&gt;
* The PCB traces need to be more thick (more expensive)&lt;br /&gt;
* The rechargable battery need to support higher current (more expensive)&lt;br /&gt;
&lt;br /&gt;
So, that's the reason why Ardumower is designed as a 24V system.&lt;br /&gt;
&lt;br /&gt;
= Wheel motors =&lt;br /&gt;
&amp;lt;gallery&amp;gt;&lt;br /&gt;
  File: ardumower_motor.jpg | Ardumower gear motor with encoder (8mm diameter, 5900 rpm motor, 0.055 Nm, gear ratio 1/212, output torque 2.45Nm, output rpm 31)&lt;br /&gt;
  File: wheel_motor_diagram.png | Ardumower gear motor curve (motor only)&lt;br /&gt;
  File:decrease_motor_noise.png | Decrease motor noise&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
The two left and right gear motors are controlled independently (aka 'differential driving') to:&lt;br /&gt;
&lt;br /&gt;
* drive the robot forward/backward&lt;br /&gt;
* steer the robot left/right&lt;br /&gt;
&lt;br /&gt;
The Ardumower wheel motor features:&lt;br /&gt;
* A rotation speed up to 31 rpm allows to move the robot at sufficient speed (at up to meter/sec = 31rpm/60 * PI * 0.25m  = 0.4m/sec using 250mm diameter wheels)&lt;br /&gt;
* A high torque (2.45Nm) guarantees that the robot can climb small hills as well (with 2 motors, 0.125 radius wheel, 31rpm = 0.4m/s, acceleration = 0.2 ( 1/2 of nomeinal speed) up to 14 degree) [http://www.robotshop.com/blog/en/drive-motor-sizing-tool-9698 see calculator]&lt;br /&gt;
* Integrated encoders, so it can measure the rotation speed, the distance and the direction (see [[Odometry]] for more information) - Encoders are REQUIRED for Ardumower software.&lt;br /&gt;
* 24V  (load current ~1A)&lt;br /&gt;
&lt;br /&gt;
= Motor driver =&lt;br /&gt;
A motor driver is a circuit that allows current to flow either one direction or the opposite direction through the motor - depending on wether the motor should turn forward or backward (so called 'H-bridge'). There are many motor drivers available as ready-circuit boards, some can even control two motors  (Dual H-Bridge) - if you connect two of their H-bridges in parallel, the maximum motor current can be increased.&lt;br /&gt;
&lt;br /&gt;
If the direction of the motor does not need to be controlled, (e.g. for the blades), you do not need an H-bridge, but instead a simple 'switch' (e.g. MOSFET-transistor-circuit).&lt;br /&gt;
&lt;br /&gt;
The motor driver is connected through control signals to the Arduino. Example:&lt;br /&gt;
&lt;br /&gt;
  Arduino Digital Pin  —&amp;gt;  MOTOR-Direction Pin (DIR)&lt;br /&gt;
  Arduino PWM Pin      —&amp;gt;  MOTOR-Speed Pin (PWM)&lt;br /&gt;
  Arduino Analog Pin   &amp;lt;—  MOTOR-Current Sensor Pin&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
One pin controls the direction (forward/backward), the other pin controls the speed. One analog input pin is connected to the current sensor. The current sensor module (ACS712-05A) is connected in series with the motor.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery&amp;gt;&lt;br /&gt;
File:Ardumower_motor_driver_circuit.png | NOTE: only for demonstration! See real [http://wiki.ardumower.de/index.php?title=Ardumower_PCB schematics] for concrete wiring&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== PWM frequency ==&lt;br /&gt;
The speed of the motor is controlled by a PWM duty signal. We use the Arduino default PWM frequency (490 Hz) to control the motor drivers.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery&amp;gt;&lt;br /&gt;
File: Arduino_pwm.png | Arduino PWM duty signal&lt;br /&gt;
File: Pwm_490hz.png | PWM 490 Hz: odometry ticks, sense (current) &lt;br /&gt;
File: Pwm_3khz.png | PWM 3.9 Khz: odometry ticks, sense (current) &lt;br /&gt;
File: Pwm_20khz.png | PWM 20 Khz: odometry ticks, sense (current) &lt;br /&gt;
File: Pwm_31khz.png | PWM 31 Khz: odometry ticks, sense (current) &lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Popular modules ==&lt;br /&gt;
=== MC33926 (recommended) ===&lt;br /&gt;
&lt;br /&gt;
Особенности: up to 3A with integrated current sensor and thermal shut-down protection, for all kind of robot mowers) &lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery&amp;gt;&lt;br /&gt;
File:Mc33926.jpg | pinout&lt;br /&gt;
File:Mc33926_example.jpg | jumpers&lt;br /&gt;
File:MC33926_schematics.jpg | schematics&lt;br /&gt;
File:Mc33926_current_limiter.jpg | automatic current limiter&lt;br /&gt;
File:Motor_pwm_50_percent_transients.jpg | Motor start 50% PWM transients&lt;br /&gt;
File:driver_hw_protection.png | Peak/EMF protection&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''&lt;br /&gt;
 M1_FB     --- pinMotorLeftSense A1&lt;br /&gt;
 M1_SF     --- pinMotorLeftFault 25&lt;br /&gt;
 M1_PWM_D1 --- connect with jumper to GND&lt;br /&gt;
 M1_PWM_D2 --- connect with jumper to VDD&lt;br /&gt;
 M1_IN1    --- pinMotorLeftPWM 5  &lt;br /&gt;
 M1_IN2    --- pinMotorLeftDir 31&lt;br /&gt;
 EN        --- pinMotorEnable  37&lt;br /&gt;
 M2_FB     --- pinMotorRightSense A0&lt;br /&gt;
 M2_SF     --- pinMotorRightFault 27&lt;br /&gt;
 M2_PWM_D1 --- connect with jumper to GND&lt;br /&gt;
 M2_PWM_D2 --- connect with jumper to VDD&lt;br /&gt;
 M2_IN1    --- pinMotorRightPWM  3 &lt;br /&gt;
 M2_IN2    --- pinMotorRightDir 33&lt;br /&gt;
 EN        --- pinMotorEnable  37&lt;br /&gt;
 VDD       --- Arduino 5V&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== BTS7960B ===&lt;br /&gt;
&amp;lt;gallery&amp;gt;&lt;br /&gt;
  File: BTS7960B_motor_driver.jpg | Модуль BTS7960B&lt;br /&gt;
  File: BTS7960B_motor_driver1.jpg | Модуль BTS7960B&lt;br /&gt;
  File: BTS7960B_motor_driver2.jpg | Модуль BTS7960B&lt;br /&gt;
  File: BTS7960B_motor_driver_sch.jpg | Схема модуля BTS7960B&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Особенности: 5.5-27V, 43A (цена 9 USD)&lt;br /&gt;
&lt;br /&gt;
На один двигатель требуется один модуль.&lt;br /&gt;
&lt;br /&gt;
[http://www.instructables.com/id/Motor-Driver-BTS7960-43A/?ALLSTEPS пример подключения]&lt;br /&gt;
&lt;br /&gt;
 BTS7960B GND      --- GND&lt;br /&gt;
 BTS7960B VCC      --- Arduino 5V&lt;br /&gt;
 BTS7960B R_IS     --- нет&lt;br /&gt;
 BTS7960B L_IS     --- нет&lt;br /&gt;
 BTS7960B R_EN     --- Arduino MOTOR_DIR pinMotorRightDir 33&lt;br /&gt;
 BTS7960B L_EN     --- Arduino MOTOR_DIR pinMotorLeftDir 31&lt;br /&gt;
 BTS7960B R_PWM    --- Arduino MOTOR_PWM pinMotorRightPWM  3 &lt;br /&gt;
 BTS7960B L_PWM    --- Arduino MOTOR_PWM pinMotorLeftPWM 5 &lt;br /&gt;
 BTS7960B MOTOR(+) --- motor(+)&lt;br /&gt;
 BTS7960B MOTOR(-) --- motor(-)&lt;br /&gt;
 BTS7960B POWER(+) --- battery(+)&lt;br /&gt;
 BTS7960B POWER(-) --- battery(-)&lt;br /&gt;
&lt;br /&gt;
=== L6201P ===&lt;br /&gt;
&amp;lt;gallery&amp;gt;&lt;br /&gt;
  File: L6201P_motor_driver.jpg | L6201P PCB&lt;br /&gt;
  File: L6201p.png | L6201P datasheet&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Особенности: 48V, 4A&lt;br /&gt;
&lt;br /&gt;
 B+     power supply output voltage equal to the power connector&lt;br /&gt;
 GND    GND&lt;br /&gt;
 EN     driver enable&lt;br /&gt;
 RPWM   forward PWM signal, active HIGH&lt;br /&gt;
 LPWM   reverse PWM signal, active HIGH&lt;br /&gt;
 CT     current signal output&lt;br /&gt;
 VT     voltage signal output&lt;br /&gt;
&lt;br /&gt;
 Forward   EN=1, RPWM=PWM, LPWM=0&lt;br /&gt;
 Reverse   EN=1, RPWM=0,   LPWM=PWM  (also possible?   EN=1, RPWM=255-PWM, LPWM=1  =&amp;gt; needs to be verified!)&lt;br /&gt;
 Brake     EN=1, RPWM=0,   LPWM=0&lt;br /&gt;
 Not brake EN=0, RPWM=x,   LPWM=x&lt;br /&gt;
 Note: 1=High level (3.3-5v), 0=Low level (0V or GND)&lt;br /&gt;
&lt;br /&gt;
=== L9958 ===&lt;br /&gt;
Особенности: Arduino 240W H-bridge Motor Driver Board - SX8847, up to 8A &lt;br /&gt;
&lt;br /&gt;
Note that this module has an on-board [http://en.wikipedia.org/wiki/78xx linear voltage regulator], which converts the input POWER (typically 24 or 12V) to 5V. Some modules do this with a single voltage regulator (chip VR1 on the module), or in a two-staged approach (VR1 and U2). &lt;br /&gt;
&lt;br /&gt;
Converting 24V to 5V with a linear voltage regulator is very inefficient (current in = current out, so if you need 100mA at 5V, the linear voltage regulator requires 100mA at 24V, so you loose 1.9W in this module). Therefore, it is recommended to disconnect the linear voltage regulator from the board, and use the 5V from the switched mode power supply. &lt;br /&gt;
&lt;br /&gt;
 L9958 GND---GND&lt;br /&gt;
 L9958 VCC---Arduino 5V&lt;br /&gt;
 L9958 EN---Arduino 5V&lt;br /&gt;
 L9958 DI---GND&lt;br /&gt;
 L9958 DIR---Arduino MOTOR_DIR&lt;br /&gt;
 L9958 PWM---Arduino MOTOR_PWM&lt;br /&gt;
 L9958 MOTOR(+)---motor(+)&lt;br /&gt;
 L9958 MOTOR(-)---motor(-)&lt;br /&gt;
 L9958 POWER(+)---battery(+)&lt;br /&gt;
 L9958 POWER(-)---battery(-)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery&amp;gt;&lt;br /&gt;
  File: Motor_driver_L9958.jpg&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== L298N ===&lt;br /&gt;
Особенности: up to 4A &lt;br /&gt;
Notice: When using a L298N-motor driver, both H-bridges (2A) should be connected in parallel, so that both bridges drive a single motor (max. 4A):&lt;br /&gt;
&lt;br /&gt;
Connect in parallel:&lt;br /&gt;
 IN1 with IN4&lt;br /&gt;
 IN2 with IN3&lt;br /&gt;
 OUT1 with OUT4&lt;br /&gt;
 OUT2 with OUT3&lt;br /&gt;
(Do NOT disconnect the SENSE-lines, except when you want to measure current by a 'shunt' resistor).&lt;br /&gt;
&lt;br /&gt;
Make sure there is a jumper on both ENA and ENB. Also, make sure there is a jumper on S1.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery&amp;gt;&lt;br /&gt;
File: Motordriver_l298n.JPG | driver &lt;br /&gt;
File: L298driver.jpg | double current&lt;br /&gt;
File: L298N_schematics.jpg | schematics&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= Mower motor and driver =&lt;br /&gt;
&amp;lt;gallery&amp;gt;&lt;br /&gt;
File: ardumower_mower_motor.jpg | Ardumower mower motor&lt;br /&gt;
File: Mower_motor_curve.png | Ardumower mower motor curve&lt;br /&gt;
File: Mower2_start_current.png | Mower start current&lt;br /&gt;
File: Mower4_blocked_500ms_detect_5s_wait.png | Mower blocked, 500ms detection (max), waittime: 5sec (min)&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
The Ardumower mower motor features:&lt;br /&gt;
* Fast enough to cut the lawn (3150 rpm)&lt;br /&gt;
* Enough torque (140 mNm / 46 W)&lt;br /&gt;
* Quiet mowing (you cannot hear it)&lt;br /&gt;
* 24V, load current ~1.0A  (L=2.8mH, R=1.9ohm)&lt;br /&gt;
&lt;br /&gt;
For a the mowing motor, a MOSFET circuit is used. The MOSFET transistor IRLIZ44N (alternatives: IRF1404, IRL540N, RFP30N06LE, FQP30N06L) can already switch a current of 30A at the Arduino 5V control signal (N-LogL). The 10K resistor pulls down to ground when the Arduino starts. The 180 Ohm resistor limits the current at the Gate caused by level switches to about 30mA. The diode (MBR1045) protects  the circuit against current caused by motor induction. A current sensor module (ACS712-30A) is connected in series with the motor.&lt;br /&gt;
&lt;br /&gt;
[[File:warning.png]]'''Security note: For security reasons, always remove mower blades in your first tests!'''&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery&amp;gt;&lt;br /&gt;
File: Ardumower_mower_motor_circuit.png | NOTE: only for demonstration! See real [http://wiki.ardumower.de/index.php?title=Ardumower_PCB schematics] for concrete wiring&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= Choosing a driver =&lt;br /&gt;
&lt;br /&gt;
When purchasing a motor driver, consider...&lt;br /&gt;
* max. thermal load (short-circuit current)&lt;br /&gt;
* price&lt;br /&gt;
&lt;br /&gt;
= Starting current =&lt;br /&gt;
Here are some measurements of the Ardumower motor's starting current (peak):&lt;br /&gt;
&lt;br /&gt;
Starting current:&lt;br /&gt;
* Gear motor: 15A (starting current peak)&lt;br /&gt;
* Mowing motor: 20A (starting current peak)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery&amp;gt;&lt;br /&gt;
File: Messung_einschalt_spitzen.jpg | Gear motor start current (peak)&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= Short-circuit current =&lt;br /&gt;
To not damage the motor driver on the first run, find out the maximum current that can flow through your motors. In other words, find out the 'short-circuit' current. Typical measurement installation:&lt;br /&gt;
&lt;br /&gt;
Battery === Ampere meter === Motor&lt;br /&gt;
&lt;br /&gt;
The Amperemeter (e.g. model making) should be able to measure the maximum current (e.g. 30A). The motor to be measured is mechanically blocked (so it cannot rotate).&lt;br /&gt;
&lt;br /&gt;
'''Warning'''&lt;br /&gt;
&lt;br /&gt;
* always remove blades&lt;br /&gt;
* only connect battery for a short period (1-5 seconds)&lt;br /&gt;
* always use cables with sufficient wire cross section&lt;br /&gt;
&lt;br /&gt;
Example measurement:&lt;br /&gt;
&lt;br /&gt;
* Rotenbach SPM08-320&lt;br /&gt;
** Wheel motor: 8A&lt;br /&gt;
** Mowing motor:&lt;br /&gt;
&lt;br /&gt;
* Ambrogio L50&lt;br /&gt;
** Wheel motor: 4,5A&lt;br /&gt;
** Mowing motor: 22A&lt;br /&gt;
&lt;br /&gt;
* Tianchen TC-G158&lt;br /&gt;
** Wheel motor: 5,4A&lt;br /&gt;
** Mowing motor: 16A (both 32A)&lt;br /&gt;
&lt;br /&gt;
The measured current will only flow in 'worst-case' scenarios, which means when the motor starts or when it is blocked and it will only flow for a short time  (as your battery might not deliver the high current constantly, and so current and voltage will break down).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Current sensor =&lt;br /&gt;
To detect certain conditions (robot drives against obstacle, motor blocks etc.), the motor current should be monitored constantly. There are two approaches for sensing current.&lt;br /&gt;
&lt;br /&gt;
== Approach &amp;quot;Hall sensor module&amp;quot; ==&lt;br /&gt;
This is the recommended approach for sensing current. These current sensor modules are available for different current ranges.&lt;br /&gt;
&lt;br /&gt;
* ACS712ELC-05A (185mV/A, max. 5A)&lt;br /&gt;
* ACS712ELC-20A (100mV/A, max. 20A)&lt;br /&gt;
* ACS712ELC-30A (66mV/A, max. 30A)&lt;br /&gt;
* The lower the range, the more precise the measurement.&lt;br /&gt;
&lt;br /&gt;
== Approach &amp;quot;Shunt resistor (circuit)&amp;quot; ==&lt;br /&gt;
The current flows across a very small resistor (0.5 Ohm) and the voltage drop is measured&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery&amp;gt;&lt;br /&gt;
File: L298n_module_circuit.jpg &lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=Further links=&lt;br /&gt;
#[http://www.ardumower.de/index.php/en/forum/maehwerk/74-10a-pwm-controller-modul-fuer-den-arduino 10A PWM controller module modification]&lt;/div&gt;</summary>
		<author><name>Unlogic</name></author>	</entry>

	<entry>
		<id>https://wiki.ardumower.de/index.php?title=Datei:BTS7960B_motor_driver_sch.jpg&amp;diff=2754</id>
		<title>Datei:BTS7960B motor driver sch.jpg</title>
		<link rel="alternate" type="text/html" href="https://wiki.ardumower.de/index.php?title=Datei:BTS7960B_motor_driver_sch.jpg&amp;diff=2754"/>
				<updated>2015-08-30T13:51:02Z</updated>
		
		<summary type="html">&lt;p&gt;Unlogic: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Unlogic</name></author>	</entry>

	<entry>
		<id>https://wiki.ardumower.de/index.php?title=Motor_driver_ru&amp;diff=2753</id>
		<title>Motor driver ru</title>
		<link rel="alternate" type="text/html" href="https://wiki.ardumower.de/index.php?title=Motor_driver_ru&amp;diff=2753"/>
				<updated>2015-08-30T13:09:25Z</updated>
		
		<summary type="html">&lt;p&gt;Unlogic: /* BTS7960B */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Описание =&lt;br /&gt;
Ardumower's design uses two different types of motors (all motors can be purchased via the [https://www.marotronics.de/index.php?k=7 shop] [[File: shopping.png|link=https://www.marotronics.de/index.php?k=7]]):&lt;br /&gt;
* Two motors (with integrated gearing) for driving (wheel motors), and encoder (for distance, direction and speed control)&lt;br /&gt;
* One motor (with high rotation speed) for mowing (mower motor)&lt;br /&gt;
&lt;br /&gt;
To control a motor, it requires a 'motor driver'.&lt;br /&gt;
&lt;br /&gt;
= Voltages =&lt;br /&gt;
Although there exist 12V motors and 24V motors, as in all modern systems, the Ardumower uses 24V motors. The reason is as follows:&lt;br /&gt;
&lt;br /&gt;
Assuming that the motor consumes 50W, using 24V results to a motor current: 50W / 24V = 2A.&lt;br /&gt;
&lt;br /&gt;
Assuming that the motor consumes 50W, using 12V results to a motor current: 50W / 12V = 4A.&lt;br /&gt;
&lt;br /&gt;
The higher the current (A), the more problems arise:&lt;br /&gt;
&lt;br /&gt;
* The motor driver must be suitable for higher current (more expensive)&lt;br /&gt;
* The PCB traces need to be more thick (more expensive)&lt;br /&gt;
* The rechargable battery need to support higher current (more expensive)&lt;br /&gt;
&lt;br /&gt;
So, that's the reason why Ardumower is designed as a 24V system.&lt;br /&gt;
&lt;br /&gt;
= Wheel motors =&lt;br /&gt;
&amp;lt;gallery&amp;gt;&lt;br /&gt;
  File: ardumower_motor.jpg | Ardumower gear motor with encoder (8mm diameter, 5900 rpm motor, 0.055 Nm, gear ratio 1/212, output torque 2.45Nm, output rpm 31)&lt;br /&gt;
  File: wheel_motor_diagram.png | Ardumower gear motor curve (motor only)&lt;br /&gt;
  File:decrease_motor_noise.png | Decrease motor noise&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
The two left and right gear motors are controlled independently (aka 'differential driving') to:&lt;br /&gt;
&lt;br /&gt;
* drive the robot forward/backward&lt;br /&gt;
* steer the robot left/right&lt;br /&gt;
&lt;br /&gt;
The Ardumower wheel motor features:&lt;br /&gt;
* A rotation speed up to 31 rpm allows to move the robot at sufficient speed (at up to meter/sec = 31rpm/60 * PI * 0.25m  = 0.4m/sec using 250mm diameter wheels)&lt;br /&gt;
* A high torque (2.45Nm) guarantees that the robot can climb small hills as well (with 2 motors, 0.125 radius wheel, 31rpm = 0.4m/s, acceleration = 0.2 ( 1/2 of nomeinal speed) up to 14 degree) [http://www.robotshop.com/blog/en/drive-motor-sizing-tool-9698 see calculator]&lt;br /&gt;
* Integrated encoders, so it can measure the rotation speed, the distance and the direction (see [[Odometry]] for more information) - Encoders are REQUIRED for Ardumower software.&lt;br /&gt;
* 24V  (load current ~1A)&lt;br /&gt;
&lt;br /&gt;
= Motor driver =&lt;br /&gt;
A motor driver is a circuit that allows current to flow either one direction or the opposite direction through the motor - depending on wether the motor should turn forward or backward (so called 'H-bridge'). There are many motor drivers available as ready-circuit boards, some can even control two motors  (Dual H-Bridge) - if you connect two of their H-bridges in parallel, the maximum motor current can be increased.&lt;br /&gt;
&lt;br /&gt;
If the direction of the motor does not need to be controlled, (e.g. for the blades), you do not need an H-bridge, but instead a simple 'switch' (e.g. MOSFET-transistor-circuit).&lt;br /&gt;
&lt;br /&gt;
The motor driver is connected through control signals to the Arduino. Example:&lt;br /&gt;
&lt;br /&gt;
  Arduino Digital Pin  —&amp;gt;  MOTOR-Direction Pin (DIR)&lt;br /&gt;
  Arduino PWM Pin      —&amp;gt;  MOTOR-Speed Pin (PWM)&lt;br /&gt;
  Arduino Analog Pin   &amp;lt;—  MOTOR-Current Sensor Pin&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
One pin controls the direction (forward/backward), the other pin controls the speed. One analog input pin is connected to the current sensor. The current sensor module (ACS712-05A) is connected in series with the motor.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery&amp;gt;&lt;br /&gt;
File:Ardumower_motor_driver_circuit.png | NOTE: only for demonstration! See real [http://wiki.ardumower.de/index.php?title=Ardumower_PCB schematics] for concrete wiring&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== PWM frequency ==&lt;br /&gt;
The speed of the motor is controlled by a PWM duty signal. We use the Arduino default PWM frequency (490 Hz) to control the motor drivers.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery&amp;gt;&lt;br /&gt;
File: Arduino_pwm.png | Arduino PWM duty signal&lt;br /&gt;
File: Pwm_490hz.png | PWM 490 Hz: odometry ticks, sense (current) &lt;br /&gt;
File: Pwm_3khz.png | PWM 3.9 Khz: odometry ticks, sense (current) &lt;br /&gt;
File: Pwm_20khz.png | PWM 20 Khz: odometry ticks, sense (current) &lt;br /&gt;
File: Pwm_31khz.png | PWM 31 Khz: odometry ticks, sense (current) &lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Popular modules ==&lt;br /&gt;
=== MC33926 (recommended) ===&lt;br /&gt;
&lt;br /&gt;
Особенности: up to 3A with integrated current sensor and thermal shut-down protection, for all kind of robot mowers) &lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery&amp;gt;&lt;br /&gt;
File:Mc33926.jpg | pinout&lt;br /&gt;
File:Mc33926_example.jpg | jumpers&lt;br /&gt;
File:MC33926_schematics.jpg | schematics&lt;br /&gt;
File:Mc33926_current_limiter.jpg | automatic current limiter&lt;br /&gt;
File:Motor_pwm_50_percent_transients.jpg | Motor start 50% PWM transients&lt;br /&gt;
File:driver_hw_protection.png | Peak/EMF protection&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''&lt;br /&gt;
 M1_FB     --- pinMotorLeftSense A1&lt;br /&gt;
 M1_SF     --- pinMotorLeftFault 25&lt;br /&gt;
 M1_PWM_D1 --- connect with jumper to GND&lt;br /&gt;
 M1_PWM_D2 --- connect with jumper to VDD&lt;br /&gt;
 M1_IN1    --- pinMotorLeftPWM 5  &lt;br /&gt;
 M1_IN2    --- pinMotorLeftDir 31&lt;br /&gt;
 EN        --- pinMotorEnable  37&lt;br /&gt;
 M2_FB     --- pinMotorRightSense A0&lt;br /&gt;
 M2_SF     --- pinMotorRightFault 27&lt;br /&gt;
 M2_PWM_D1 --- connect with jumper to GND&lt;br /&gt;
 M2_PWM_D2 --- connect with jumper to VDD&lt;br /&gt;
 M2_IN1    --- pinMotorRightPWM  3 &lt;br /&gt;
 M2_IN2    --- pinMotorRightDir 33&lt;br /&gt;
 EN        --- pinMotorEnable  37&lt;br /&gt;
 VDD       --- Arduino 5V&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== BTS7960B ===&lt;br /&gt;
&amp;lt;gallery&amp;gt;&lt;br /&gt;
  File: BTS7960B_motor_driver.jpg | Модуль BTS7960B&lt;br /&gt;
  File: BTS7960B_motor_driver1.jpg | Модуль BTS7960B&lt;br /&gt;
  File: BTS7960B_motor_driver2.jpg | Модуль BTS7960B&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Особенности: 5.5-27V, 43A (цена 9 USD)&lt;br /&gt;
&lt;br /&gt;
На один двигатель требуется один модуль.&lt;br /&gt;
&lt;br /&gt;
[http://www.instructables.com/id/Motor-Driver-BTS7960-43A/?ALLSTEPS пример подключения]&lt;br /&gt;
&lt;br /&gt;
 BTS7960B GND      --- GND&lt;br /&gt;
 BTS7960B VCC      --- Arduino 5V&lt;br /&gt;
 BTS7960B R_IS     --- нет&lt;br /&gt;
 BTS7960B L_IS     --- нет&lt;br /&gt;
 BTS7960B R_EN     --- Arduino MOTOR_DIR pinMotorRightDir 33&lt;br /&gt;
 BTS7960B L_EN     --- Arduino MOTOR_DIR pinMotorLeftDir 31&lt;br /&gt;
 BTS7960B R_PWM    --- Arduino MOTOR_PWM pinMotorRightPWM  3 &lt;br /&gt;
 BTS7960B L_PWM    --- Arduino MOTOR_PWM pinMotorLeftPWM 5 &lt;br /&gt;
 BTS7960B MOTOR(+) --- motor(+)&lt;br /&gt;
 BTS7960B MOTOR(-) --- motor(-)&lt;br /&gt;
 BTS7960B POWER(+) --- battery(+)&lt;br /&gt;
 BTS7960B POWER(-) --- battery(-)&lt;br /&gt;
&lt;br /&gt;
=== L6201P ===&lt;br /&gt;
&amp;lt;gallery&amp;gt;&lt;br /&gt;
  File: L6201P_motor_driver.jpg | L6201P PCB&lt;br /&gt;
  File: L6201p.png | L6201P datasheet&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Особенности: 48V, 4A&lt;br /&gt;
&lt;br /&gt;
 B+     power supply output voltage equal to the power connector&lt;br /&gt;
 GND    GND&lt;br /&gt;
 EN     driver enable&lt;br /&gt;
 RPWM   forward PWM signal, active HIGH&lt;br /&gt;
 LPWM   reverse PWM signal, active HIGH&lt;br /&gt;
 CT     current signal output&lt;br /&gt;
 VT     voltage signal output&lt;br /&gt;
&lt;br /&gt;
 Forward   EN=1, RPWM=PWM, LPWM=0&lt;br /&gt;
 Reverse   EN=1, RPWM=0,   LPWM=PWM  (also possible?   EN=1, RPWM=255-PWM, LPWM=1  =&amp;gt; needs to be verified!)&lt;br /&gt;
 Brake     EN=1, RPWM=0,   LPWM=0&lt;br /&gt;
 Not brake EN=0, RPWM=x,   LPWM=x&lt;br /&gt;
 Note: 1=High level (3.3-5v), 0=Low level (0V or GND)&lt;br /&gt;
&lt;br /&gt;
=== L9958 ===&lt;br /&gt;
Особенности: Arduino 240W H-bridge Motor Driver Board - SX8847, up to 8A &lt;br /&gt;
&lt;br /&gt;
Note that this module has an on-board [http://en.wikipedia.org/wiki/78xx linear voltage regulator], which converts the input POWER (typically 24 or 12V) to 5V. Some modules do this with a single voltage regulator (chip VR1 on the module), or in a two-staged approach (VR1 and U2). &lt;br /&gt;
&lt;br /&gt;
Converting 24V to 5V with a linear voltage regulator is very inefficient (current in = current out, so if you need 100mA at 5V, the linear voltage regulator requires 100mA at 24V, so you loose 1.9W in this module). Therefore, it is recommended to disconnect the linear voltage regulator from the board, and use the 5V from the switched mode power supply. &lt;br /&gt;
&lt;br /&gt;
 L9958 GND---GND&lt;br /&gt;
 L9958 VCC---Arduino 5V&lt;br /&gt;
 L9958 EN---Arduino 5V&lt;br /&gt;
 L9958 DI---GND&lt;br /&gt;
 L9958 DIR---Arduino MOTOR_DIR&lt;br /&gt;
 L9958 PWM---Arduino MOTOR_PWM&lt;br /&gt;
 L9958 MOTOR(+)---motor(+)&lt;br /&gt;
 L9958 MOTOR(-)---motor(-)&lt;br /&gt;
 L9958 POWER(+)---battery(+)&lt;br /&gt;
 L9958 POWER(-)---battery(-)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery&amp;gt;&lt;br /&gt;
  File: Motor_driver_L9958.jpg&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== L298N ===&lt;br /&gt;
Особенности: up to 4A &lt;br /&gt;
Notice: When using a L298N-motor driver, both H-bridges (2A) should be connected in parallel, so that both bridges drive a single motor (max. 4A):&lt;br /&gt;
&lt;br /&gt;
Connect in parallel:&lt;br /&gt;
 IN1 with IN4&lt;br /&gt;
 IN2 with IN3&lt;br /&gt;
 OUT1 with OUT4&lt;br /&gt;
 OUT2 with OUT3&lt;br /&gt;
(Do NOT disconnect the SENSE-lines, except when you want to measure current by a 'shunt' resistor).&lt;br /&gt;
&lt;br /&gt;
Make sure there is a jumper on both ENA and ENB. Also, make sure there is a jumper on S1.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery&amp;gt;&lt;br /&gt;
File: Motordriver_l298n.JPG | driver &lt;br /&gt;
File: L298driver.jpg | double current&lt;br /&gt;
File: L298N_schematics.jpg | schematics&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= Mower motor and driver =&lt;br /&gt;
&amp;lt;gallery&amp;gt;&lt;br /&gt;
File: ardumower_mower_motor.jpg | Ardumower mower motor&lt;br /&gt;
File: Mower_motor_curve.png | Ardumower mower motor curve&lt;br /&gt;
File: Mower2_start_current.png | Mower start current&lt;br /&gt;
File: Mower4_blocked_500ms_detect_5s_wait.png | Mower blocked, 500ms detection (max), waittime: 5sec (min)&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
The Ardumower mower motor features:&lt;br /&gt;
* Fast enough to cut the lawn (3150 rpm)&lt;br /&gt;
* Enough torque (140 mNm / 46 W)&lt;br /&gt;
* Quiet mowing (you cannot hear it)&lt;br /&gt;
* 24V, load current ~1.0A  (L=2.8mH, R=1.9ohm)&lt;br /&gt;
&lt;br /&gt;
For a the mowing motor, a MOSFET circuit is used. The MOSFET transistor IRLIZ44N (alternatives: IRF1404, IRL540N, RFP30N06LE, FQP30N06L) can already switch a current of 30A at the Arduino 5V control signal (N-LogL). The 10K resistor pulls down to ground when the Arduino starts. The 180 Ohm resistor limits the current at the Gate caused by level switches to about 30mA. The diode (MBR1045) protects  the circuit against current caused by motor induction. A current sensor module (ACS712-30A) is connected in series with the motor.&lt;br /&gt;
&lt;br /&gt;
[[File:warning.png]]'''Security note: For security reasons, always remove mower blades in your first tests!'''&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery&amp;gt;&lt;br /&gt;
File: Ardumower_mower_motor_circuit.png | NOTE: only for demonstration! See real [http://wiki.ardumower.de/index.php?title=Ardumower_PCB schematics] for concrete wiring&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= Choosing a driver =&lt;br /&gt;
&lt;br /&gt;
When purchasing a motor driver, consider...&lt;br /&gt;
* max. thermal load (short-circuit current)&lt;br /&gt;
* price&lt;br /&gt;
&lt;br /&gt;
= Starting current =&lt;br /&gt;
Here are some measurements of the Ardumower motor's starting current (peak):&lt;br /&gt;
&lt;br /&gt;
Starting current:&lt;br /&gt;
* Gear motor: 15A (starting current peak)&lt;br /&gt;
* Mowing motor: 20A (starting current peak)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery&amp;gt;&lt;br /&gt;
File: Messung_einschalt_spitzen.jpg | Gear motor start current (peak)&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= Short-circuit current =&lt;br /&gt;
To not damage the motor driver on the first run, find out the maximum current that can flow through your motors. In other words, find out the 'short-circuit' current. Typical measurement installation:&lt;br /&gt;
&lt;br /&gt;
Battery === Ampere meter === Motor&lt;br /&gt;
&lt;br /&gt;
The Amperemeter (e.g. model making) should be able to measure the maximum current (e.g. 30A). The motor to be measured is mechanically blocked (so it cannot rotate).&lt;br /&gt;
&lt;br /&gt;
'''Warning'''&lt;br /&gt;
&lt;br /&gt;
* always remove blades&lt;br /&gt;
* only connect battery for a short period (1-5 seconds)&lt;br /&gt;
* always use cables with sufficient wire cross section&lt;br /&gt;
&lt;br /&gt;
Example measurement:&lt;br /&gt;
&lt;br /&gt;
* Rotenbach SPM08-320&lt;br /&gt;
** Wheel motor: 8A&lt;br /&gt;
** Mowing motor:&lt;br /&gt;
&lt;br /&gt;
* Ambrogio L50&lt;br /&gt;
** Wheel motor: 4,5A&lt;br /&gt;
** Mowing motor: 22A&lt;br /&gt;
&lt;br /&gt;
* Tianchen TC-G158&lt;br /&gt;
** Wheel motor: 5,4A&lt;br /&gt;
** Mowing motor: 16A (both 32A)&lt;br /&gt;
&lt;br /&gt;
The measured current will only flow in 'worst-case' scenarios, which means when the motor starts or when it is blocked and it will only flow for a short time  (as your battery might not deliver the high current constantly, and so current and voltage will break down).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Current sensor =&lt;br /&gt;
To detect certain conditions (robot drives against obstacle, motor blocks etc.), the motor current should be monitored constantly. There are two approaches for sensing current.&lt;br /&gt;
&lt;br /&gt;
== Approach &amp;quot;Hall sensor module&amp;quot; ==&lt;br /&gt;
This is the recommended approach for sensing current. These current sensor modules are available for different current ranges.&lt;br /&gt;
&lt;br /&gt;
* ACS712ELC-05A (185mV/A, max. 5A)&lt;br /&gt;
* ACS712ELC-20A (100mV/A, max. 20A)&lt;br /&gt;
* ACS712ELC-30A (66mV/A, max. 30A)&lt;br /&gt;
* The lower the range, the more precise the measurement.&lt;br /&gt;
&lt;br /&gt;
== Approach &amp;quot;Shunt resistor (circuit)&amp;quot; ==&lt;br /&gt;
The current flows across a very small resistor (0.5 Ohm) and the voltage drop is measured&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery&amp;gt;&lt;br /&gt;
File: L298n_module_circuit.jpg &lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=Further links=&lt;br /&gt;
#[http://www.ardumower.de/index.php/en/forum/maehwerk/74-10a-pwm-controller-modul-fuer-den-arduino 10A PWM controller module modification]&lt;/div&gt;</summary>
		<author><name>Unlogic</name></author>	</entry>

	<entry>
		<id>https://wiki.ardumower.de/index.php?title=Motor_driver_ru&amp;diff=2752</id>
		<title>Motor driver ru</title>
		<link rel="alternate" type="text/html" href="https://wiki.ardumower.de/index.php?title=Motor_driver_ru&amp;diff=2752"/>
				<updated>2015-08-30T12:57:57Z</updated>
		
		<summary type="html">&lt;p&gt;Unlogic: /* BTS7960B */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Описание =&lt;br /&gt;
Ardumower's design uses two different types of motors (all motors can be purchased via the [https://www.marotronics.de/index.php?k=7 shop] [[File: shopping.png|link=https://www.marotronics.de/index.php?k=7]]):&lt;br /&gt;
* Two motors (with integrated gearing) for driving (wheel motors), and encoder (for distance, direction and speed control)&lt;br /&gt;
* One motor (with high rotation speed) for mowing (mower motor)&lt;br /&gt;
&lt;br /&gt;
To control a motor, it requires a 'motor driver'.&lt;br /&gt;
&lt;br /&gt;
= Voltages =&lt;br /&gt;
Although there exist 12V motors and 24V motors, as in all modern systems, the Ardumower uses 24V motors. The reason is as follows:&lt;br /&gt;
&lt;br /&gt;
Assuming that the motor consumes 50W, using 24V results to a motor current: 50W / 24V = 2A.&lt;br /&gt;
&lt;br /&gt;
Assuming that the motor consumes 50W, using 12V results to a motor current: 50W / 12V = 4A.&lt;br /&gt;
&lt;br /&gt;
The higher the current (A), the more problems arise:&lt;br /&gt;
&lt;br /&gt;
* The motor driver must be suitable for higher current (more expensive)&lt;br /&gt;
* The PCB traces need to be more thick (more expensive)&lt;br /&gt;
* The rechargable battery need to support higher current (more expensive)&lt;br /&gt;
&lt;br /&gt;
So, that's the reason why Ardumower is designed as a 24V system.&lt;br /&gt;
&lt;br /&gt;
= Wheel motors =&lt;br /&gt;
&amp;lt;gallery&amp;gt;&lt;br /&gt;
  File: ardumower_motor.jpg | Ardumower gear motor with encoder (8mm diameter, 5900 rpm motor, 0.055 Nm, gear ratio 1/212, output torque 2.45Nm, output rpm 31)&lt;br /&gt;
  File: wheel_motor_diagram.png | Ardumower gear motor curve (motor only)&lt;br /&gt;
  File:decrease_motor_noise.png | Decrease motor noise&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
The two left and right gear motors are controlled independently (aka 'differential driving') to:&lt;br /&gt;
&lt;br /&gt;
* drive the robot forward/backward&lt;br /&gt;
* steer the robot left/right&lt;br /&gt;
&lt;br /&gt;
The Ardumower wheel motor features:&lt;br /&gt;
* A rotation speed up to 31 rpm allows to move the robot at sufficient speed (at up to meter/sec = 31rpm/60 * PI * 0.25m  = 0.4m/sec using 250mm diameter wheels)&lt;br /&gt;
* A high torque (2.45Nm) guarantees that the robot can climb small hills as well (with 2 motors, 0.125 radius wheel, 31rpm = 0.4m/s, acceleration = 0.2 ( 1/2 of nomeinal speed) up to 14 degree) [http://www.robotshop.com/blog/en/drive-motor-sizing-tool-9698 see calculator]&lt;br /&gt;
* Integrated encoders, so it can measure the rotation speed, the distance and the direction (see [[Odometry]] for more information) - Encoders are REQUIRED for Ardumower software.&lt;br /&gt;
* 24V  (load current ~1A)&lt;br /&gt;
&lt;br /&gt;
= Motor driver =&lt;br /&gt;
A motor driver is a circuit that allows current to flow either one direction or the opposite direction through the motor - depending on wether the motor should turn forward or backward (so called 'H-bridge'). There are many motor drivers available as ready-circuit boards, some can even control two motors  (Dual H-Bridge) - if you connect two of their H-bridges in parallel, the maximum motor current can be increased.&lt;br /&gt;
&lt;br /&gt;
If the direction of the motor does not need to be controlled, (e.g. for the blades), you do not need an H-bridge, but instead a simple 'switch' (e.g. MOSFET-transistor-circuit).&lt;br /&gt;
&lt;br /&gt;
The motor driver is connected through control signals to the Arduino. Example:&lt;br /&gt;
&lt;br /&gt;
  Arduino Digital Pin  —&amp;gt;  MOTOR-Direction Pin (DIR)&lt;br /&gt;
  Arduino PWM Pin      —&amp;gt;  MOTOR-Speed Pin (PWM)&lt;br /&gt;
  Arduino Analog Pin   &amp;lt;—  MOTOR-Current Sensor Pin&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
One pin controls the direction (forward/backward), the other pin controls the speed. One analog input pin is connected to the current sensor. The current sensor module (ACS712-05A) is connected in series with the motor.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery&amp;gt;&lt;br /&gt;
File:Ardumower_motor_driver_circuit.png | NOTE: only for demonstration! See real [http://wiki.ardumower.de/index.php?title=Ardumower_PCB schematics] for concrete wiring&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== PWM frequency ==&lt;br /&gt;
The speed of the motor is controlled by a PWM duty signal. We use the Arduino default PWM frequency (490 Hz) to control the motor drivers.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery&amp;gt;&lt;br /&gt;
File: Arduino_pwm.png | Arduino PWM duty signal&lt;br /&gt;
File: Pwm_490hz.png | PWM 490 Hz: odometry ticks, sense (current) &lt;br /&gt;
File: Pwm_3khz.png | PWM 3.9 Khz: odometry ticks, sense (current) &lt;br /&gt;
File: Pwm_20khz.png | PWM 20 Khz: odometry ticks, sense (current) &lt;br /&gt;
File: Pwm_31khz.png | PWM 31 Khz: odometry ticks, sense (current) &lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Popular modules ==&lt;br /&gt;
=== MC33926 (recommended) ===&lt;br /&gt;
&lt;br /&gt;
Особенности: up to 3A with integrated current sensor and thermal shut-down protection, for all kind of robot mowers) &lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery&amp;gt;&lt;br /&gt;
File:Mc33926.jpg | pinout&lt;br /&gt;
File:Mc33926_example.jpg | jumpers&lt;br /&gt;
File:MC33926_schematics.jpg | schematics&lt;br /&gt;
File:Mc33926_current_limiter.jpg | automatic current limiter&lt;br /&gt;
File:Motor_pwm_50_percent_transients.jpg | Motor start 50% PWM transients&lt;br /&gt;
File:driver_hw_protection.png | Peak/EMF protection&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''&lt;br /&gt;
 M1_FB     --- pinMotorLeftSense A1&lt;br /&gt;
 M1_SF     --- pinMotorLeftFault 25&lt;br /&gt;
 M1_PWM_D1 --- connect with jumper to GND&lt;br /&gt;
 M1_PWM_D2 --- connect with jumper to VDD&lt;br /&gt;
 M1_IN1    --- pinMotorLeftPWM 5  &lt;br /&gt;
 M1_IN2    --- pinMotorLeftDir 31&lt;br /&gt;
 EN        --- pinMotorEnable  37&lt;br /&gt;
 M2_FB     --- pinMotorRightSense A0&lt;br /&gt;
 M2_SF     --- pinMotorRightFault 27&lt;br /&gt;
 M2_PWM_D1 --- connect with jumper to GND&lt;br /&gt;
 M2_PWM_D2 --- connect with jumper to VDD&lt;br /&gt;
 M2_IN1    --- pinMotorRightPWM  3 &lt;br /&gt;
 M2_IN2    --- pinMotorRightDir 33&lt;br /&gt;
 EN        --- pinMotorEnable  37&lt;br /&gt;
 VDD       --- Arduino 5V&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== BTS7960B ===&lt;br /&gt;
&amp;lt;gallery&amp;gt;&lt;br /&gt;
  File: BTS7960B_motor_driver.jpg | Модуль BTS7960B&lt;br /&gt;
  File: BTS7960B_motor_driver1.jpg | Модуль BTS7960B&lt;br /&gt;
  File: BTS7960B_motor_driver2.jpg | Модуль BTS7960B&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Особенности: 5.5-27V, 43A (цена 9 USD)&lt;br /&gt;
&lt;br /&gt;
На один двигатель требуется один модуль.&lt;br /&gt;
&lt;br /&gt;
 M1_FB     --- pinMotorLeftSense A1&lt;br /&gt;
 M1_SF     --- pinMotorLeftFault 25&lt;br /&gt;
 M1_PWM_D1 --- connect with jumper to GND&lt;br /&gt;
 M1_PWM_D2 --- connect with jumper to VDD&lt;br /&gt;
 M1_IN1    --- pinMotorLeftPWM 5  &lt;br /&gt;
 M1_IN2    --- pinMotorLeftDir 31&lt;br /&gt;
 EN        --- pinMotorEnable  37&lt;br /&gt;
 M2_FB     --- pinMotorRightSense A0&lt;br /&gt;
 M2_SF     --- pinMotorRightFault 27&lt;br /&gt;
 M2_PWM_D1 --- connect with jumper to GND&lt;br /&gt;
 M2_PWM_D2 --- connect with jumper to VDD&lt;br /&gt;
 M2_IN1    --- pinMotorRightPWM  3 &lt;br /&gt;
 M2_IN2    --- pinMotorRightDir 33&lt;br /&gt;
 EN        --- pinMotorEnable  37&lt;br /&gt;
 VDD       --- Arduino 5V&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[http://www.instructables.com/id/Motor-Driver-BTS7960-43A/?ALLSTEPS пример подключения]&lt;br /&gt;
&lt;br /&gt;
 BTS7960B GND      --- GND&lt;br /&gt;
 BTS7960B VCC      --- Arduino 5V&lt;br /&gt;
 BTS7960B R_IS     --- Arduino 5V&lt;br /&gt;
 BTS7960B L_IS     --- GND&lt;br /&gt;
 BTS7960B R_EN     --- Arduino MOTOR_DIR&lt;br /&gt;
 BTS7960B R_EN     --- Arduino MOTOR_PWM&lt;br /&gt;
&lt;br /&gt;
 BTS7960B MOTOR(+) --- motor(+)&lt;br /&gt;
 BTS7960B MOTOR(-) --- motor(-)&lt;br /&gt;
 BTS7960B POWER(+) --- battery(+)&lt;br /&gt;
 BTS7960B POWER(-) --- battery(-)&lt;br /&gt;
&lt;br /&gt;
=== L6201P ===&lt;br /&gt;
&amp;lt;gallery&amp;gt;&lt;br /&gt;
  File: L6201P_motor_driver.jpg | L6201P PCB&lt;br /&gt;
  File: L6201p.png | L6201P datasheet&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Особенности: 48V, 4A&lt;br /&gt;
&lt;br /&gt;
 B+     power supply output voltage equal to the power connector&lt;br /&gt;
 GND    GND&lt;br /&gt;
 EN     driver enable&lt;br /&gt;
 RPWM   forward PWM signal, active HIGH&lt;br /&gt;
 LPWM   reverse PWM signal, active HIGH&lt;br /&gt;
 CT     current signal output&lt;br /&gt;
 VT     voltage signal output&lt;br /&gt;
&lt;br /&gt;
 Forward   EN=1, RPWM=PWM, LPWM=0&lt;br /&gt;
 Reverse   EN=1, RPWM=0,   LPWM=PWM  (also possible?   EN=1, RPWM=255-PWM, LPWM=1  =&amp;gt; needs to be verified!)&lt;br /&gt;
 Brake     EN=1, RPWM=0,   LPWM=0&lt;br /&gt;
 Not brake EN=0, RPWM=x,   LPWM=x&lt;br /&gt;
 Note: 1=High level (3.3-5v), 0=Low level (0V or GND)&lt;br /&gt;
&lt;br /&gt;
=== L9958 ===&lt;br /&gt;
Особенности: Arduino 240W H-bridge Motor Driver Board - SX8847, up to 8A &lt;br /&gt;
&lt;br /&gt;
Note that this module has an on-board [http://en.wikipedia.org/wiki/78xx linear voltage regulator], which converts the input POWER (typically 24 or 12V) to 5V. Some modules do this with a single voltage regulator (chip VR1 on the module), or in a two-staged approach (VR1 and U2). &lt;br /&gt;
&lt;br /&gt;
Converting 24V to 5V with a linear voltage regulator is very inefficient (current in = current out, so if you need 100mA at 5V, the linear voltage regulator requires 100mA at 24V, so you loose 1.9W in this module). Therefore, it is recommended to disconnect the linear voltage regulator from the board, and use the 5V from the switched mode power supply. &lt;br /&gt;
&lt;br /&gt;
 L9958 GND---GND&lt;br /&gt;
 L9958 VCC---Arduino 5V&lt;br /&gt;
 L9958 EN---Arduino 5V&lt;br /&gt;
 L9958 DI---GND&lt;br /&gt;
 L9958 DIR---Arduino MOTOR_DIR&lt;br /&gt;
 L9958 PWM---Arduino MOTOR_PWM&lt;br /&gt;
 L9958 MOTOR(+)---motor(+)&lt;br /&gt;
 L9958 MOTOR(-)---motor(-)&lt;br /&gt;
 L9958 POWER(+)---battery(+)&lt;br /&gt;
 L9958 POWER(-)---battery(-)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery&amp;gt;&lt;br /&gt;
  File: Motor_driver_L9958.jpg&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== L298N ===&lt;br /&gt;
Особенности: up to 4A &lt;br /&gt;
Notice: When using a L298N-motor driver, both H-bridges (2A) should be connected in parallel, so that both bridges drive a single motor (max. 4A):&lt;br /&gt;
&lt;br /&gt;
Connect in parallel:&lt;br /&gt;
 IN1 with IN4&lt;br /&gt;
 IN2 with IN3&lt;br /&gt;
 OUT1 with OUT4&lt;br /&gt;
 OUT2 with OUT3&lt;br /&gt;
(Do NOT disconnect the SENSE-lines, except when you want to measure current by a 'shunt' resistor).&lt;br /&gt;
&lt;br /&gt;
Make sure there is a jumper on both ENA and ENB. Also, make sure there is a jumper on S1.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery&amp;gt;&lt;br /&gt;
File: Motordriver_l298n.JPG | driver &lt;br /&gt;
File: L298driver.jpg | double current&lt;br /&gt;
File: L298N_schematics.jpg | schematics&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= Mower motor and driver =&lt;br /&gt;
&amp;lt;gallery&amp;gt;&lt;br /&gt;
File: ardumower_mower_motor.jpg | Ardumower mower motor&lt;br /&gt;
File: Mower_motor_curve.png | Ardumower mower motor curve&lt;br /&gt;
File: Mower2_start_current.png | Mower start current&lt;br /&gt;
File: Mower4_blocked_500ms_detect_5s_wait.png | Mower blocked, 500ms detection (max), waittime: 5sec (min)&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
The Ardumower mower motor features:&lt;br /&gt;
* Fast enough to cut the lawn (3150 rpm)&lt;br /&gt;
* Enough torque (140 mNm / 46 W)&lt;br /&gt;
* Quiet mowing (you cannot hear it)&lt;br /&gt;
* 24V, load current ~1.0A  (L=2.8mH, R=1.9ohm)&lt;br /&gt;
&lt;br /&gt;
For a the mowing motor, a MOSFET circuit is used. The MOSFET transistor IRLIZ44N (alternatives: IRF1404, IRL540N, RFP30N06LE, FQP30N06L) can already switch a current of 30A at the Arduino 5V control signal (N-LogL). The 10K resistor pulls down to ground when the Arduino starts. The 180 Ohm resistor limits the current at the Gate caused by level switches to about 30mA. The diode (MBR1045) protects  the circuit against current caused by motor induction. A current sensor module (ACS712-30A) is connected in series with the motor.&lt;br /&gt;
&lt;br /&gt;
[[File:warning.png]]'''Security note: For security reasons, always remove mower blades in your first tests!'''&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery&amp;gt;&lt;br /&gt;
File: Ardumower_mower_motor_circuit.png | NOTE: only for demonstration! See real [http://wiki.ardumower.de/index.php?title=Ardumower_PCB schematics] for concrete wiring&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= Choosing a driver =&lt;br /&gt;
&lt;br /&gt;
When purchasing a motor driver, consider...&lt;br /&gt;
* max. thermal load (short-circuit current)&lt;br /&gt;
* price&lt;br /&gt;
&lt;br /&gt;
= Starting current =&lt;br /&gt;
Here are some measurements of the Ardumower motor's starting current (peak):&lt;br /&gt;
&lt;br /&gt;
Starting current:&lt;br /&gt;
* Gear motor: 15A (starting current peak)&lt;br /&gt;
* Mowing motor: 20A (starting current peak)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery&amp;gt;&lt;br /&gt;
File: Messung_einschalt_spitzen.jpg | Gear motor start current (peak)&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= Short-circuit current =&lt;br /&gt;
To not damage the motor driver on the first run, find out the maximum current that can flow through your motors. In other words, find out the 'short-circuit' current. Typical measurement installation:&lt;br /&gt;
&lt;br /&gt;
Battery === Ampere meter === Motor&lt;br /&gt;
&lt;br /&gt;
The Amperemeter (e.g. model making) should be able to measure the maximum current (e.g. 30A). The motor to be measured is mechanically blocked (so it cannot rotate).&lt;br /&gt;
&lt;br /&gt;
'''Warning'''&lt;br /&gt;
&lt;br /&gt;
* always remove blades&lt;br /&gt;
* only connect battery for a short period (1-5 seconds)&lt;br /&gt;
* always use cables with sufficient wire cross section&lt;br /&gt;
&lt;br /&gt;
Example measurement:&lt;br /&gt;
&lt;br /&gt;
* Rotenbach SPM08-320&lt;br /&gt;
** Wheel motor: 8A&lt;br /&gt;
** Mowing motor:&lt;br /&gt;
&lt;br /&gt;
* Ambrogio L50&lt;br /&gt;
** Wheel motor: 4,5A&lt;br /&gt;
** Mowing motor: 22A&lt;br /&gt;
&lt;br /&gt;
* Tianchen TC-G158&lt;br /&gt;
** Wheel motor: 5,4A&lt;br /&gt;
** Mowing motor: 16A (both 32A)&lt;br /&gt;
&lt;br /&gt;
The measured current will only flow in 'worst-case' scenarios, which means when the motor starts or when it is blocked and it will only flow for a short time  (as your battery might not deliver the high current constantly, and so current and voltage will break down).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Current sensor =&lt;br /&gt;
To detect certain conditions (robot drives against obstacle, motor blocks etc.), the motor current should be monitored constantly. There are two approaches for sensing current.&lt;br /&gt;
&lt;br /&gt;
== Approach &amp;quot;Hall sensor module&amp;quot; ==&lt;br /&gt;
This is the recommended approach for sensing current. These current sensor modules are available for different current ranges.&lt;br /&gt;
&lt;br /&gt;
* ACS712ELC-05A (185mV/A, max. 5A)&lt;br /&gt;
* ACS712ELC-20A (100mV/A, max. 20A)&lt;br /&gt;
* ACS712ELC-30A (66mV/A, max. 30A)&lt;br /&gt;
* The lower the range, the more precise the measurement.&lt;br /&gt;
&lt;br /&gt;
== Approach &amp;quot;Shunt resistor (circuit)&amp;quot; ==&lt;br /&gt;
The current flows across a very small resistor (0.5 Ohm) and the voltage drop is measured&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery&amp;gt;&lt;br /&gt;
File: L298n_module_circuit.jpg &lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=Further links=&lt;br /&gt;
#[http://www.ardumower.de/index.php/en/forum/maehwerk/74-10a-pwm-controller-modul-fuer-den-arduino 10A PWM controller module modification]&lt;/div&gt;</summary>
		<author><name>Unlogic</name></author>	</entry>

	<entry>
		<id>https://wiki.ardumower.de/index.php?title=Motor_driver_ru&amp;diff=2751</id>
		<title>Motor driver ru</title>
		<link rel="alternate" type="text/html" href="https://wiki.ardumower.de/index.php?title=Motor_driver_ru&amp;diff=2751"/>
				<updated>2015-08-30T12:44:33Z</updated>
		
		<summary type="html">&lt;p&gt;Unlogic: /* BTS7960B */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Описание =&lt;br /&gt;
Ardumower's design uses two different types of motors (all motors can be purchased via the [https://www.marotronics.de/index.php?k=7 shop] [[File: shopping.png|link=https://www.marotronics.de/index.php?k=7]]):&lt;br /&gt;
* Two motors (with integrated gearing) for driving (wheel motors), and encoder (for distance, direction and speed control)&lt;br /&gt;
* One motor (with high rotation speed) for mowing (mower motor)&lt;br /&gt;
&lt;br /&gt;
To control a motor, it requires a 'motor driver'.&lt;br /&gt;
&lt;br /&gt;
= Voltages =&lt;br /&gt;
Although there exist 12V motors and 24V motors, as in all modern systems, the Ardumower uses 24V motors. The reason is as follows:&lt;br /&gt;
&lt;br /&gt;
Assuming that the motor consumes 50W, using 24V results to a motor current: 50W / 24V = 2A.&lt;br /&gt;
&lt;br /&gt;
Assuming that the motor consumes 50W, using 12V results to a motor current: 50W / 12V = 4A.&lt;br /&gt;
&lt;br /&gt;
The higher the current (A), the more problems arise:&lt;br /&gt;
&lt;br /&gt;
* The motor driver must be suitable for higher current (more expensive)&lt;br /&gt;
* The PCB traces need to be more thick (more expensive)&lt;br /&gt;
* The rechargable battery need to support higher current (more expensive)&lt;br /&gt;
&lt;br /&gt;
So, that's the reason why Ardumower is designed as a 24V system.&lt;br /&gt;
&lt;br /&gt;
= Wheel motors =&lt;br /&gt;
&amp;lt;gallery&amp;gt;&lt;br /&gt;
  File: ardumower_motor.jpg | Ardumower gear motor with encoder (8mm diameter, 5900 rpm motor, 0.055 Nm, gear ratio 1/212, output torque 2.45Nm, output rpm 31)&lt;br /&gt;
  File: wheel_motor_diagram.png | Ardumower gear motor curve (motor only)&lt;br /&gt;
  File:decrease_motor_noise.png | Decrease motor noise&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
The two left and right gear motors are controlled independently (aka 'differential driving') to:&lt;br /&gt;
&lt;br /&gt;
* drive the robot forward/backward&lt;br /&gt;
* steer the robot left/right&lt;br /&gt;
&lt;br /&gt;
The Ardumower wheel motor features:&lt;br /&gt;
* A rotation speed up to 31 rpm allows to move the robot at sufficient speed (at up to meter/sec = 31rpm/60 * PI * 0.25m  = 0.4m/sec using 250mm diameter wheels)&lt;br /&gt;
* A high torque (2.45Nm) guarantees that the robot can climb small hills as well (with 2 motors, 0.125 radius wheel, 31rpm = 0.4m/s, acceleration = 0.2 ( 1/2 of nomeinal speed) up to 14 degree) [http://www.robotshop.com/blog/en/drive-motor-sizing-tool-9698 see calculator]&lt;br /&gt;
* Integrated encoders, so it can measure the rotation speed, the distance and the direction (see [[Odometry]] for more information) - Encoders are REQUIRED for Ardumower software.&lt;br /&gt;
* 24V  (load current ~1A)&lt;br /&gt;
&lt;br /&gt;
= Motor driver =&lt;br /&gt;
A motor driver is a circuit that allows current to flow either one direction or the opposite direction through the motor - depending on wether the motor should turn forward or backward (so called 'H-bridge'). There are many motor drivers available as ready-circuit boards, some can even control two motors  (Dual H-Bridge) - if you connect two of their H-bridges in parallel, the maximum motor current can be increased.&lt;br /&gt;
&lt;br /&gt;
If the direction of the motor does not need to be controlled, (e.g. for the blades), you do not need an H-bridge, but instead a simple 'switch' (e.g. MOSFET-transistor-circuit).&lt;br /&gt;
&lt;br /&gt;
The motor driver is connected through control signals to the Arduino. Example:&lt;br /&gt;
&lt;br /&gt;
  Arduino Digital Pin  —&amp;gt;  MOTOR-Direction Pin (DIR)&lt;br /&gt;
  Arduino PWM Pin      —&amp;gt;  MOTOR-Speed Pin (PWM)&lt;br /&gt;
  Arduino Analog Pin   &amp;lt;—  MOTOR-Current Sensor Pin&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
One pin controls the direction (forward/backward), the other pin controls the speed. One analog input pin is connected to the current sensor. The current sensor module (ACS712-05A) is connected in series with the motor.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery&amp;gt;&lt;br /&gt;
File:Ardumower_motor_driver_circuit.png | NOTE: only for demonstration! See real [http://wiki.ardumower.de/index.php?title=Ardumower_PCB schematics] for concrete wiring&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== PWM frequency ==&lt;br /&gt;
The speed of the motor is controlled by a PWM duty signal. We use the Arduino default PWM frequency (490 Hz) to control the motor drivers.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery&amp;gt;&lt;br /&gt;
File: Arduino_pwm.png | Arduino PWM duty signal&lt;br /&gt;
File: Pwm_490hz.png | PWM 490 Hz: odometry ticks, sense (current) &lt;br /&gt;
File: Pwm_3khz.png | PWM 3.9 Khz: odometry ticks, sense (current) &lt;br /&gt;
File: Pwm_20khz.png | PWM 20 Khz: odometry ticks, sense (current) &lt;br /&gt;
File: Pwm_31khz.png | PWM 31 Khz: odometry ticks, sense (current) &lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Popular modules ==&lt;br /&gt;
=== MC33926 (recommended) ===&lt;br /&gt;
&lt;br /&gt;
Особенности: up to 3A with integrated current sensor and thermal shut-down protection, for all kind of robot mowers) &lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery&amp;gt;&lt;br /&gt;
File:Mc33926.jpg | pinout&lt;br /&gt;
File:Mc33926_example.jpg | jumpers&lt;br /&gt;
File:MC33926_schematics.jpg | schematics&lt;br /&gt;
File:Mc33926_current_limiter.jpg | automatic current limiter&lt;br /&gt;
File:Motor_pwm_50_percent_transients.jpg | Motor start 50% PWM transients&lt;br /&gt;
File:driver_hw_protection.png | Peak/EMF protection&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''&lt;br /&gt;
 M1_FB     --- pinMotorLeftSense A1&lt;br /&gt;
 M1_SF     --- pinMotorLeftFault 25&lt;br /&gt;
 M1_PWM_D1 --- connect with jumper to GND&lt;br /&gt;
 M1_PWM_D2 --- connect with jumper to VDD&lt;br /&gt;
 M1_IN1    --- pinMotorLeftPWM 5  &lt;br /&gt;
 M1_IN2    --- pinMotorLeftDir 31&lt;br /&gt;
 EN        --- pinMotorEnable  37&lt;br /&gt;
 M2_FB     --- pinMotorRightSense A0&lt;br /&gt;
 M2_SF     --- pinMotorRightFault 27&lt;br /&gt;
 M2_PWM_D1 --- connect with jumper to GND&lt;br /&gt;
 M2_PWM_D2 --- connect with jumper to VDD&lt;br /&gt;
 M2_IN1    --- pinMotorRightPWM  3 &lt;br /&gt;
 M2_IN2    --- pinMotorRightDir 33&lt;br /&gt;
 EN        --- pinMotorEnable  37&lt;br /&gt;
 VDD       --- Arduino 5V&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== BTS7960B ===&lt;br /&gt;
&amp;lt;gallery&amp;gt;&lt;br /&gt;
  File: BTS7960B_motor_driver.jpg | Модуль BTS7960B&lt;br /&gt;
  File: BTS7960B_motor_driver1.jpg | Модуль BTS7960B&lt;br /&gt;
  File: BTS7960B_motor_driver2.jpg | Модуль BTS7960B&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Особенности: 5.5-27V, 43A (цена 9 USD)&lt;br /&gt;
&lt;br /&gt;
На один двигатель требуется один модуль.&lt;br /&gt;
&lt;br /&gt;
 M1_FB     --- pinMotorLeftSense A1&lt;br /&gt;
 M1_SF     --- pinMotorLeftFault 25&lt;br /&gt;
 M1_PWM_D1 --- connect with jumper to GND&lt;br /&gt;
 M1_PWM_D2 --- connect with jumper to VDD&lt;br /&gt;
 M1_IN1    --- pinMotorLeftPWM 5  &lt;br /&gt;
 M1_IN2    --- pinMotorLeftDir 31&lt;br /&gt;
 EN        --- pinMotorEnable  37&lt;br /&gt;
 M2_FB     --- pinMotorRightSense A0&lt;br /&gt;
 M2_SF     --- pinMotorRightFault 27&lt;br /&gt;
 M2_PWM_D1 --- connect with jumper to GND&lt;br /&gt;
 M2_PWM_D2 --- connect with jumper to VDD&lt;br /&gt;
 M2_IN1    --- pinMotorRightPWM  3 &lt;br /&gt;
 M2_IN2    --- pinMotorRightDir 33&lt;br /&gt;
 EN        --- pinMotorEnable  37&lt;br /&gt;
 VDD       --- Arduino 5V&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 BTS7960B GND---GND&lt;br /&gt;
 BTS7960B VCC---Arduino 5V&lt;br /&gt;
 BTS7960B EN---Arduino 5V&lt;br /&gt;
 BTS7960B DI---GND&lt;br /&gt;
 BTS7960B DIR---Arduino MOTOR_DIR&lt;br /&gt;
 BTS7960B PWM---Arduino MOTOR_PWM&lt;br /&gt;
 BTS7960B MOTOR(+)---motor(+)&lt;br /&gt;
 BTS7960B MOTOR(-)---motor(-)&lt;br /&gt;
 BTS7960B POWER(+)---battery(+)&lt;br /&gt;
 BTS7960B POWER(-)---battery(-)&lt;br /&gt;
&lt;br /&gt;
=== L6201P ===&lt;br /&gt;
&amp;lt;gallery&amp;gt;&lt;br /&gt;
  File: L6201P_motor_driver.jpg | L6201P PCB&lt;br /&gt;
  File: L6201p.png | L6201P datasheet&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Особенности: 48V, 4A&lt;br /&gt;
&lt;br /&gt;
 B+     power supply output voltage equal to the power connector&lt;br /&gt;
 GND    GND&lt;br /&gt;
 EN     driver enable&lt;br /&gt;
 RPWM   forward PWM signal, active HIGH&lt;br /&gt;
 LPWM   reverse PWM signal, active HIGH&lt;br /&gt;
 CT     current signal output&lt;br /&gt;
 VT     voltage signal output&lt;br /&gt;
&lt;br /&gt;
 Forward   EN=1, RPWM=PWM, LPWM=0&lt;br /&gt;
 Reverse   EN=1, RPWM=0,   LPWM=PWM  (also possible?   EN=1, RPWM=255-PWM, LPWM=1  =&amp;gt; needs to be verified!)&lt;br /&gt;
 Brake     EN=1, RPWM=0,   LPWM=0&lt;br /&gt;
 Not brake EN=0, RPWM=x,   LPWM=x&lt;br /&gt;
 Note: 1=High level (3.3-5v), 0=Low level (0V or GND)&lt;br /&gt;
&lt;br /&gt;
=== L9958 ===&lt;br /&gt;
Особенности: Arduino 240W H-bridge Motor Driver Board - SX8847, up to 8A &lt;br /&gt;
&lt;br /&gt;
Note that this module has an on-board [http://en.wikipedia.org/wiki/78xx linear voltage regulator], which converts the input POWER (typically 24 or 12V) to 5V. Some modules do this with a single voltage regulator (chip VR1 on the module), or in a two-staged approach (VR1 and U2). &lt;br /&gt;
&lt;br /&gt;
Converting 24V to 5V with a linear voltage regulator is very inefficient (current in = current out, so if you need 100mA at 5V, the linear voltage regulator requires 100mA at 24V, so you loose 1.9W in this module). Therefore, it is recommended to disconnect the linear voltage regulator from the board, and use the 5V from the switched mode power supply. &lt;br /&gt;
&lt;br /&gt;
 L9958 GND---GND&lt;br /&gt;
 L9958 VCC---Arduino 5V&lt;br /&gt;
 L9958 EN---Arduino 5V&lt;br /&gt;
 L9958 DI---GND&lt;br /&gt;
 L9958 DIR---Arduino MOTOR_DIR&lt;br /&gt;
 L9958 PWM---Arduino MOTOR_PWM&lt;br /&gt;
 L9958 MOTOR(+)---motor(+)&lt;br /&gt;
 L9958 MOTOR(-)---motor(-)&lt;br /&gt;
 L9958 POWER(+)---battery(+)&lt;br /&gt;
 L9958 POWER(-)---battery(-)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery&amp;gt;&lt;br /&gt;
  File: Motor_driver_L9958.jpg&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== L298N ===&lt;br /&gt;
Особенности: up to 4A &lt;br /&gt;
Notice: When using a L298N-motor driver, both H-bridges (2A) should be connected in parallel, so that both bridges drive a single motor (max. 4A):&lt;br /&gt;
&lt;br /&gt;
Connect in parallel:&lt;br /&gt;
 IN1 with IN4&lt;br /&gt;
 IN2 with IN3&lt;br /&gt;
 OUT1 with OUT4&lt;br /&gt;
 OUT2 with OUT3&lt;br /&gt;
(Do NOT disconnect the SENSE-lines, except when you want to measure current by a 'shunt' resistor).&lt;br /&gt;
&lt;br /&gt;
Make sure there is a jumper on both ENA and ENB. Also, make sure there is a jumper on S1.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery&amp;gt;&lt;br /&gt;
File: Motordriver_l298n.JPG | driver &lt;br /&gt;
File: L298driver.jpg | double current&lt;br /&gt;
File: L298N_schematics.jpg | schematics&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= Mower motor and driver =&lt;br /&gt;
&amp;lt;gallery&amp;gt;&lt;br /&gt;
File: ardumower_mower_motor.jpg | Ardumower mower motor&lt;br /&gt;
File: Mower_motor_curve.png | Ardumower mower motor curve&lt;br /&gt;
File: Mower2_start_current.png | Mower start current&lt;br /&gt;
File: Mower4_blocked_500ms_detect_5s_wait.png | Mower blocked, 500ms detection (max), waittime: 5sec (min)&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
The Ardumower mower motor features:&lt;br /&gt;
* Fast enough to cut the lawn (3150 rpm)&lt;br /&gt;
* Enough torque (140 mNm / 46 W)&lt;br /&gt;
* Quiet mowing (you cannot hear it)&lt;br /&gt;
* 24V, load current ~1.0A  (L=2.8mH, R=1.9ohm)&lt;br /&gt;
&lt;br /&gt;
For a the mowing motor, a MOSFET circuit is used. The MOSFET transistor IRLIZ44N (alternatives: IRF1404, IRL540N, RFP30N06LE, FQP30N06L) can already switch a current of 30A at the Arduino 5V control signal (N-LogL). The 10K resistor pulls down to ground when the Arduino starts. The 180 Ohm resistor limits the current at the Gate caused by level switches to about 30mA. The diode (MBR1045) protects  the circuit against current caused by motor induction. A current sensor module (ACS712-30A) is connected in series with the motor.&lt;br /&gt;
&lt;br /&gt;
[[File:warning.png]]'''Security note: For security reasons, always remove mower blades in your first tests!'''&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery&amp;gt;&lt;br /&gt;
File: Ardumower_mower_motor_circuit.png | NOTE: only for demonstration! See real [http://wiki.ardumower.de/index.php?title=Ardumower_PCB schematics] for concrete wiring&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= Choosing a driver =&lt;br /&gt;
&lt;br /&gt;
When purchasing a motor driver, consider...&lt;br /&gt;
* max. thermal load (short-circuit current)&lt;br /&gt;
* price&lt;br /&gt;
&lt;br /&gt;
= Starting current =&lt;br /&gt;
Here are some measurements of the Ardumower motor's starting current (peak):&lt;br /&gt;
&lt;br /&gt;
Starting current:&lt;br /&gt;
* Gear motor: 15A (starting current peak)&lt;br /&gt;
* Mowing motor: 20A (starting current peak)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery&amp;gt;&lt;br /&gt;
File: Messung_einschalt_spitzen.jpg | Gear motor start current (peak)&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= Short-circuit current =&lt;br /&gt;
To not damage the motor driver on the first run, find out the maximum current that can flow through your motors. In other words, find out the 'short-circuit' current. Typical measurement installation:&lt;br /&gt;
&lt;br /&gt;
Battery === Ampere meter === Motor&lt;br /&gt;
&lt;br /&gt;
The Amperemeter (e.g. model making) should be able to measure the maximum current (e.g. 30A). The motor to be measured is mechanically blocked (so it cannot rotate).&lt;br /&gt;
&lt;br /&gt;
'''Warning'''&lt;br /&gt;
&lt;br /&gt;
* always remove blades&lt;br /&gt;
* only connect battery for a short period (1-5 seconds)&lt;br /&gt;
* always use cables with sufficient wire cross section&lt;br /&gt;
&lt;br /&gt;
Example measurement:&lt;br /&gt;
&lt;br /&gt;
* Rotenbach SPM08-320&lt;br /&gt;
** Wheel motor: 8A&lt;br /&gt;
** Mowing motor:&lt;br /&gt;
&lt;br /&gt;
* Ambrogio L50&lt;br /&gt;
** Wheel motor: 4,5A&lt;br /&gt;
** Mowing motor: 22A&lt;br /&gt;
&lt;br /&gt;
* Tianchen TC-G158&lt;br /&gt;
** Wheel motor: 5,4A&lt;br /&gt;
** Mowing motor: 16A (both 32A)&lt;br /&gt;
&lt;br /&gt;
The measured current will only flow in 'worst-case' scenarios, which means when the motor starts or when it is blocked and it will only flow for a short time  (as your battery might not deliver the high current constantly, and so current and voltage will break down).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Current sensor =&lt;br /&gt;
To detect certain conditions (robot drives against obstacle, motor blocks etc.), the motor current should be monitored constantly. There are two approaches for sensing current.&lt;br /&gt;
&lt;br /&gt;
== Approach &amp;quot;Hall sensor module&amp;quot; ==&lt;br /&gt;
This is the recommended approach for sensing current. These current sensor modules are available for different current ranges.&lt;br /&gt;
&lt;br /&gt;
* ACS712ELC-05A (185mV/A, max. 5A)&lt;br /&gt;
* ACS712ELC-20A (100mV/A, max. 20A)&lt;br /&gt;
* ACS712ELC-30A (66mV/A, max. 30A)&lt;br /&gt;
* The lower the range, the more precise the measurement.&lt;br /&gt;
&lt;br /&gt;
== Approach &amp;quot;Shunt resistor (circuit)&amp;quot; ==&lt;br /&gt;
The current flows across a very small resistor (0.5 Ohm) and the voltage drop is measured&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery&amp;gt;&lt;br /&gt;
File: L298n_module_circuit.jpg &lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=Further links=&lt;br /&gt;
#[http://www.ardumower.de/index.php/en/forum/maehwerk/74-10a-pwm-controller-modul-fuer-den-arduino 10A PWM controller module modification]&lt;/div&gt;</summary>
		<author><name>Unlogic</name></author>	</entry>

	<entry>
		<id>https://wiki.ardumower.de/index.php?title=Motor_driver_ru&amp;diff=2750</id>
		<title>Motor driver ru</title>
		<link rel="alternate" type="text/html" href="https://wiki.ardumower.de/index.php?title=Motor_driver_ru&amp;diff=2750"/>
				<updated>2015-08-30T12:43:18Z</updated>
		
		<summary type="html">&lt;p&gt;Unlogic: /* BTS7960B */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Описание =&lt;br /&gt;
Ardumower's design uses two different types of motors (all motors can be purchased via the [https://www.marotronics.de/index.php?k=7 shop] [[File: shopping.png|link=https://www.marotronics.de/index.php?k=7]]):&lt;br /&gt;
* Two motors (with integrated gearing) for driving (wheel motors), and encoder (for distance, direction and speed control)&lt;br /&gt;
* One motor (with high rotation speed) for mowing (mower motor)&lt;br /&gt;
&lt;br /&gt;
To control a motor, it requires a 'motor driver'.&lt;br /&gt;
&lt;br /&gt;
= Voltages =&lt;br /&gt;
Although there exist 12V motors and 24V motors, as in all modern systems, the Ardumower uses 24V motors. The reason is as follows:&lt;br /&gt;
&lt;br /&gt;
Assuming that the motor consumes 50W, using 24V results to a motor current: 50W / 24V = 2A.&lt;br /&gt;
&lt;br /&gt;
Assuming that the motor consumes 50W, using 12V results to a motor current: 50W / 12V = 4A.&lt;br /&gt;
&lt;br /&gt;
The higher the current (A), the more problems arise:&lt;br /&gt;
&lt;br /&gt;
* The motor driver must be suitable for higher current (more expensive)&lt;br /&gt;
* The PCB traces need to be more thick (more expensive)&lt;br /&gt;
* The rechargable battery need to support higher current (more expensive)&lt;br /&gt;
&lt;br /&gt;
So, that's the reason why Ardumower is designed as a 24V system.&lt;br /&gt;
&lt;br /&gt;
= Wheel motors =&lt;br /&gt;
&amp;lt;gallery&amp;gt;&lt;br /&gt;
  File: ardumower_motor.jpg | Ardumower gear motor with encoder (8mm diameter, 5900 rpm motor, 0.055 Nm, gear ratio 1/212, output torque 2.45Nm, output rpm 31)&lt;br /&gt;
  File: wheel_motor_diagram.png | Ardumower gear motor curve (motor only)&lt;br /&gt;
  File:decrease_motor_noise.png | Decrease motor noise&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
The two left and right gear motors are controlled independently (aka 'differential driving') to:&lt;br /&gt;
&lt;br /&gt;
* drive the robot forward/backward&lt;br /&gt;
* steer the robot left/right&lt;br /&gt;
&lt;br /&gt;
The Ardumower wheel motor features:&lt;br /&gt;
* A rotation speed up to 31 rpm allows to move the robot at sufficient speed (at up to meter/sec = 31rpm/60 * PI * 0.25m  = 0.4m/sec using 250mm diameter wheels)&lt;br /&gt;
* A high torque (2.45Nm) guarantees that the robot can climb small hills as well (with 2 motors, 0.125 radius wheel, 31rpm = 0.4m/s, acceleration = 0.2 ( 1/2 of nomeinal speed) up to 14 degree) [http://www.robotshop.com/blog/en/drive-motor-sizing-tool-9698 see calculator]&lt;br /&gt;
* Integrated encoders, so it can measure the rotation speed, the distance and the direction (see [[Odometry]] for more information) - Encoders are REQUIRED for Ardumower software.&lt;br /&gt;
* 24V  (load current ~1A)&lt;br /&gt;
&lt;br /&gt;
= Motor driver =&lt;br /&gt;
A motor driver is a circuit that allows current to flow either one direction or the opposite direction through the motor - depending on wether the motor should turn forward or backward (so called 'H-bridge'). There are many motor drivers available as ready-circuit boards, some can even control two motors  (Dual H-Bridge) - if you connect two of their H-bridges in parallel, the maximum motor current can be increased.&lt;br /&gt;
&lt;br /&gt;
If the direction of the motor does not need to be controlled, (e.g. for the blades), you do not need an H-bridge, but instead a simple 'switch' (e.g. MOSFET-transistor-circuit).&lt;br /&gt;
&lt;br /&gt;
The motor driver is connected through control signals to the Arduino. Example:&lt;br /&gt;
&lt;br /&gt;
  Arduino Digital Pin  —&amp;gt;  MOTOR-Direction Pin (DIR)&lt;br /&gt;
  Arduino PWM Pin      —&amp;gt;  MOTOR-Speed Pin (PWM)&lt;br /&gt;
  Arduino Analog Pin   &amp;lt;—  MOTOR-Current Sensor Pin&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
One pin controls the direction (forward/backward), the other pin controls the speed. One analog input pin is connected to the current sensor. The current sensor module (ACS712-05A) is connected in series with the motor.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery&amp;gt;&lt;br /&gt;
File:Ardumower_motor_driver_circuit.png | NOTE: only for demonstration! See real [http://wiki.ardumower.de/index.php?title=Ardumower_PCB schematics] for concrete wiring&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== PWM frequency ==&lt;br /&gt;
The speed of the motor is controlled by a PWM duty signal. We use the Arduino default PWM frequency (490 Hz) to control the motor drivers.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery&amp;gt;&lt;br /&gt;
File: Arduino_pwm.png | Arduino PWM duty signal&lt;br /&gt;
File: Pwm_490hz.png | PWM 490 Hz: odometry ticks, sense (current) &lt;br /&gt;
File: Pwm_3khz.png | PWM 3.9 Khz: odometry ticks, sense (current) &lt;br /&gt;
File: Pwm_20khz.png | PWM 20 Khz: odometry ticks, sense (current) &lt;br /&gt;
File: Pwm_31khz.png | PWM 31 Khz: odometry ticks, sense (current) &lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Popular modules ==&lt;br /&gt;
=== MC33926 (recommended) ===&lt;br /&gt;
&lt;br /&gt;
Особенности: up to 3A with integrated current sensor and thermal shut-down protection, for all kind of robot mowers) &lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery&amp;gt;&lt;br /&gt;
File:Mc33926.jpg | pinout&lt;br /&gt;
File:Mc33926_example.jpg | jumpers&lt;br /&gt;
File:MC33926_schematics.jpg | schematics&lt;br /&gt;
File:Mc33926_current_limiter.jpg | automatic current limiter&lt;br /&gt;
File:Motor_pwm_50_percent_transients.jpg | Motor start 50% PWM transients&lt;br /&gt;
File:driver_hw_protection.png | Peak/EMF protection&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''&lt;br /&gt;
 M1_FB     --- pinMotorLeftSense A1&lt;br /&gt;
 M1_SF     --- pinMotorLeftFault 25&lt;br /&gt;
 M1_PWM_D1 --- connect with jumper to GND&lt;br /&gt;
 M1_PWM_D2 --- connect with jumper to VDD&lt;br /&gt;
 M1_IN1    --- pinMotorLeftPWM 5  &lt;br /&gt;
 M1_IN2    --- pinMotorLeftDir 31&lt;br /&gt;
 EN        --- pinMotorEnable  37&lt;br /&gt;
 M2_FB     --- pinMotorRightSense A0&lt;br /&gt;
 M2_SF     --- pinMotorRightFault 27&lt;br /&gt;
 M2_PWM_D1 --- connect with jumper to GND&lt;br /&gt;
 M2_PWM_D2 --- connect with jumper to VDD&lt;br /&gt;
 M2_IN1    --- pinMotorRightPWM  3 &lt;br /&gt;
 M2_IN2    --- pinMotorRightDir 33&lt;br /&gt;
 EN        --- pinMotorEnable  37&lt;br /&gt;
 VDD       --- Arduino 5V&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== BTS7960B ===&lt;br /&gt;
&amp;lt;gallery&amp;gt;&lt;br /&gt;
  File: BTS7960B_motor_driver.jpg | Модуль BTS7960B&lt;br /&gt;
  File: BTS7960B_motor_driver1.jpg | Модуль BTS7960B&lt;br /&gt;
  File: BTS7960B_motor_driver2.jpg | Модуль BTS7960B&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Особенности: 5.5-27V, 43A (цена 9 USD)&lt;br /&gt;
&lt;br /&gt;
На один двигатель требуется один модуль.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
L9958 GND---GND&lt;br /&gt;
L9958 VCC---Arduino 5V&lt;br /&gt;
L9958 EN---Arduino 5V&lt;br /&gt;
L9958 DI---GND&lt;br /&gt;
L9958 DIR---Arduino MOTOR_DIR&lt;br /&gt;
L9958 PWM---Arduino MOTOR_PWM&lt;br /&gt;
L9958 MOTOR(+)---motor(+)&lt;br /&gt;
L9958 MOTOR(-)---motor(-)&lt;br /&gt;
L9958 POWER(+)---battery(+)&lt;br /&gt;
L9958 POWER(-)---battery(-)&lt;br /&gt;
&lt;br /&gt;
=== L6201P ===&lt;br /&gt;
&amp;lt;gallery&amp;gt;&lt;br /&gt;
  File: L6201P_motor_driver.jpg | L6201P PCB&lt;br /&gt;
  File: L6201p.png | L6201P datasheet&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Особенности: 48V, 4A&lt;br /&gt;
&lt;br /&gt;
 B+     power supply output voltage equal to the power connector&lt;br /&gt;
 GND    GND&lt;br /&gt;
 EN     driver enable&lt;br /&gt;
 RPWM   forward PWM signal, active HIGH&lt;br /&gt;
 LPWM   reverse PWM signal, active HIGH&lt;br /&gt;
 CT     current signal output&lt;br /&gt;
 VT     voltage signal output&lt;br /&gt;
&lt;br /&gt;
 Forward   EN=1, RPWM=PWM, LPWM=0&lt;br /&gt;
 Reverse   EN=1, RPWM=0,   LPWM=PWM  (also possible?   EN=1, RPWM=255-PWM, LPWM=1  =&amp;gt; needs to be verified!)&lt;br /&gt;
 Brake     EN=1, RPWM=0,   LPWM=0&lt;br /&gt;
 Not brake EN=0, RPWM=x,   LPWM=x&lt;br /&gt;
 Note: 1=High level (3.3-5v), 0=Low level (0V or GND)&lt;br /&gt;
&lt;br /&gt;
=== L9958 ===&lt;br /&gt;
Особенности: Arduino 240W H-bridge Motor Driver Board - SX8847, up to 8A &lt;br /&gt;
&lt;br /&gt;
Note that this module has an on-board [http://en.wikipedia.org/wiki/78xx linear voltage regulator], which converts the input POWER (typically 24 or 12V) to 5V. Some modules do this with a single voltage regulator (chip VR1 on the module), or in a two-staged approach (VR1 and U2). &lt;br /&gt;
&lt;br /&gt;
Converting 24V to 5V with a linear voltage regulator is very inefficient (current in = current out, so if you need 100mA at 5V, the linear voltage regulator requires 100mA at 24V, so you loose 1.9W in this module). Therefore, it is recommended to disconnect the linear voltage regulator from the board, and use the 5V from the switched mode power supply. &lt;br /&gt;
&lt;br /&gt;
 L9958 GND---GND&lt;br /&gt;
 L9958 VCC---Arduino 5V&lt;br /&gt;
 L9958 EN---Arduino 5V&lt;br /&gt;
 L9958 DI---GND&lt;br /&gt;
 L9958 DIR---Arduino MOTOR_DIR&lt;br /&gt;
 L9958 PWM---Arduino MOTOR_PWM&lt;br /&gt;
 L9958 MOTOR(+)---motor(+)&lt;br /&gt;
 L9958 MOTOR(-)---motor(-)&lt;br /&gt;
 L9958 POWER(+)---battery(+)&lt;br /&gt;
 L9958 POWER(-)---battery(-)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery&amp;gt;&lt;br /&gt;
  File: Motor_driver_L9958.jpg&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== L298N ===&lt;br /&gt;
Особенности: up to 4A &lt;br /&gt;
Notice: When using a L298N-motor driver, both H-bridges (2A) should be connected in parallel, so that both bridges drive a single motor (max. 4A):&lt;br /&gt;
&lt;br /&gt;
Connect in parallel:&lt;br /&gt;
 IN1 with IN4&lt;br /&gt;
 IN2 with IN3&lt;br /&gt;
 OUT1 with OUT4&lt;br /&gt;
 OUT2 with OUT3&lt;br /&gt;
(Do NOT disconnect the SENSE-lines, except when you want to measure current by a 'shunt' resistor).&lt;br /&gt;
&lt;br /&gt;
Make sure there is a jumper on both ENA and ENB. Also, make sure there is a jumper on S1.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery&amp;gt;&lt;br /&gt;
File: Motordriver_l298n.JPG | driver &lt;br /&gt;
File: L298driver.jpg | double current&lt;br /&gt;
File: L298N_schematics.jpg | schematics&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= Mower motor and driver =&lt;br /&gt;
&amp;lt;gallery&amp;gt;&lt;br /&gt;
File: ardumower_mower_motor.jpg | Ardumower mower motor&lt;br /&gt;
File: Mower_motor_curve.png | Ardumower mower motor curve&lt;br /&gt;
File: Mower2_start_current.png | Mower start current&lt;br /&gt;
File: Mower4_blocked_500ms_detect_5s_wait.png | Mower blocked, 500ms detection (max), waittime: 5sec (min)&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
The Ardumower mower motor features:&lt;br /&gt;
* Fast enough to cut the lawn (3150 rpm)&lt;br /&gt;
* Enough torque (140 mNm / 46 W)&lt;br /&gt;
* Quiet mowing (you cannot hear it)&lt;br /&gt;
* 24V, load current ~1.0A  (L=2.8mH, R=1.9ohm)&lt;br /&gt;
&lt;br /&gt;
For a the mowing motor, a MOSFET circuit is used. The MOSFET transistor IRLIZ44N (alternatives: IRF1404, IRL540N, RFP30N06LE, FQP30N06L) can already switch a current of 30A at the Arduino 5V control signal (N-LogL). The 10K resistor pulls down to ground when the Arduino starts. The 180 Ohm resistor limits the current at the Gate caused by level switches to about 30mA. The diode (MBR1045) protects  the circuit against current caused by motor induction. A current sensor module (ACS712-30A) is connected in series with the motor.&lt;br /&gt;
&lt;br /&gt;
[[File:warning.png]]'''Security note: For security reasons, always remove mower blades in your first tests!'''&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery&amp;gt;&lt;br /&gt;
File: Ardumower_mower_motor_circuit.png | NOTE: only for demonstration! See real [http://wiki.ardumower.de/index.php?title=Ardumower_PCB schematics] for concrete wiring&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= Choosing a driver =&lt;br /&gt;
&lt;br /&gt;
When purchasing a motor driver, consider...&lt;br /&gt;
* max. thermal load (short-circuit current)&lt;br /&gt;
* price&lt;br /&gt;
&lt;br /&gt;
= Starting current =&lt;br /&gt;
Here are some measurements of the Ardumower motor's starting current (peak):&lt;br /&gt;
&lt;br /&gt;
Starting current:&lt;br /&gt;
* Gear motor: 15A (starting current peak)&lt;br /&gt;
* Mowing motor: 20A (starting current peak)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery&amp;gt;&lt;br /&gt;
File: Messung_einschalt_spitzen.jpg | Gear motor start current (peak)&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= Short-circuit current =&lt;br /&gt;
To not damage the motor driver on the first run, find out the maximum current that can flow through your motors. In other words, find out the 'short-circuit' current. Typical measurement installation:&lt;br /&gt;
&lt;br /&gt;
Battery === Ampere meter === Motor&lt;br /&gt;
&lt;br /&gt;
The Amperemeter (e.g. model making) should be able to measure the maximum current (e.g. 30A). The motor to be measured is mechanically blocked (so it cannot rotate).&lt;br /&gt;
&lt;br /&gt;
'''Warning'''&lt;br /&gt;
&lt;br /&gt;
* always remove blades&lt;br /&gt;
* only connect battery for a short period (1-5 seconds)&lt;br /&gt;
* always use cables with sufficient wire cross section&lt;br /&gt;
&lt;br /&gt;
Example measurement:&lt;br /&gt;
&lt;br /&gt;
* Rotenbach SPM08-320&lt;br /&gt;
** Wheel motor: 8A&lt;br /&gt;
** Mowing motor:&lt;br /&gt;
&lt;br /&gt;
* Ambrogio L50&lt;br /&gt;
** Wheel motor: 4,5A&lt;br /&gt;
** Mowing motor: 22A&lt;br /&gt;
&lt;br /&gt;
* Tianchen TC-G158&lt;br /&gt;
** Wheel motor: 5,4A&lt;br /&gt;
** Mowing motor: 16A (both 32A)&lt;br /&gt;
&lt;br /&gt;
The measured current will only flow in 'worst-case' scenarios, which means when the motor starts or when it is blocked and it will only flow for a short time  (as your battery might not deliver the high current constantly, and so current and voltage will break down).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Current sensor =&lt;br /&gt;
To detect certain conditions (robot drives against obstacle, motor blocks etc.), the motor current should be monitored constantly. There are two approaches for sensing current.&lt;br /&gt;
&lt;br /&gt;
== Approach &amp;quot;Hall sensor module&amp;quot; ==&lt;br /&gt;
This is the recommended approach for sensing current. These current sensor modules are available for different current ranges.&lt;br /&gt;
&lt;br /&gt;
* ACS712ELC-05A (185mV/A, max. 5A)&lt;br /&gt;
* ACS712ELC-20A (100mV/A, max. 20A)&lt;br /&gt;
* ACS712ELC-30A (66mV/A, max. 30A)&lt;br /&gt;
* The lower the range, the more precise the measurement.&lt;br /&gt;
&lt;br /&gt;
== Approach &amp;quot;Shunt resistor (circuit)&amp;quot; ==&lt;br /&gt;
The current flows across a very small resistor (0.5 Ohm) and the voltage drop is measured&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery&amp;gt;&lt;br /&gt;
File: L298n_module_circuit.jpg &lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=Further links=&lt;br /&gt;
#[http://www.ardumower.de/index.php/en/forum/maehwerk/74-10a-pwm-controller-modul-fuer-den-arduino 10A PWM controller module modification]&lt;/div&gt;</summary>
		<author><name>Unlogic</name></author>	</entry>

	<entry>
		<id>https://wiki.ardumower.de/index.php?title=Motor_driver_ru&amp;diff=2749</id>
		<title>Motor driver ru</title>
		<link rel="alternate" type="text/html" href="https://wiki.ardumower.de/index.php?title=Motor_driver_ru&amp;diff=2749"/>
				<updated>2015-08-30T12:33:50Z</updated>
		
		<summary type="html">&lt;p&gt;Unlogic: /* BTS7960B */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Описание =&lt;br /&gt;
Ardumower's design uses two different types of motors (all motors can be purchased via the [https://www.marotronics.de/index.php?k=7 shop] [[File: shopping.png|link=https://www.marotronics.de/index.php?k=7]]):&lt;br /&gt;
* Two motors (with integrated gearing) for driving (wheel motors), and encoder (for distance, direction and speed control)&lt;br /&gt;
* One motor (with high rotation speed) for mowing (mower motor)&lt;br /&gt;
&lt;br /&gt;
To control a motor, it requires a 'motor driver'.&lt;br /&gt;
&lt;br /&gt;
= Voltages =&lt;br /&gt;
Although there exist 12V motors and 24V motors, as in all modern systems, the Ardumower uses 24V motors. The reason is as follows:&lt;br /&gt;
&lt;br /&gt;
Assuming that the motor consumes 50W, using 24V results to a motor current: 50W / 24V = 2A.&lt;br /&gt;
&lt;br /&gt;
Assuming that the motor consumes 50W, using 12V results to a motor current: 50W / 12V = 4A.&lt;br /&gt;
&lt;br /&gt;
The higher the current (A), the more problems arise:&lt;br /&gt;
&lt;br /&gt;
* The motor driver must be suitable for higher current (more expensive)&lt;br /&gt;
* The PCB traces need to be more thick (more expensive)&lt;br /&gt;
* The rechargable battery need to support higher current (more expensive)&lt;br /&gt;
&lt;br /&gt;
So, that's the reason why Ardumower is designed as a 24V system.&lt;br /&gt;
&lt;br /&gt;
= Wheel motors =&lt;br /&gt;
&amp;lt;gallery&amp;gt;&lt;br /&gt;
  File: ardumower_motor.jpg | Ardumower gear motor with encoder (8mm diameter, 5900 rpm motor, 0.055 Nm, gear ratio 1/212, output torque 2.45Nm, output rpm 31)&lt;br /&gt;
  File: wheel_motor_diagram.png | Ardumower gear motor curve (motor only)&lt;br /&gt;
  File:decrease_motor_noise.png | Decrease motor noise&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
The two left and right gear motors are controlled independently (aka 'differential driving') to:&lt;br /&gt;
&lt;br /&gt;
* drive the robot forward/backward&lt;br /&gt;
* steer the robot left/right&lt;br /&gt;
&lt;br /&gt;
The Ardumower wheel motor features:&lt;br /&gt;
* A rotation speed up to 31 rpm allows to move the robot at sufficient speed (at up to meter/sec = 31rpm/60 * PI * 0.25m  = 0.4m/sec using 250mm diameter wheels)&lt;br /&gt;
* A high torque (2.45Nm) guarantees that the robot can climb small hills as well (with 2 motors, 0.125 radius wheel, 31rpm = 0.4m/s, acceleration = 0.2 ( 1/2 of nomeinal speed) up to 14 degree) [http://www.robotshop.com/blog/en/drive-motor-sizing-tool-9698 see calculator]&lt;br /&gt;
* Integrated encoders, so it can measure the rotation speed, the distance and the direction (see [[Odometry]] for more information) - Encoders are REQUIRED for Ardumower software.&lt;br /&gt;
* 24V  (load current ~1A)&lt;br /&gt;
&lt;br /&gt;
= Motor driver =&lt;br /&gt;
A motor driver is a circuit that allows current to flow either one direction or the opposite direction through the motor - depending on wether the motor should turn forward or backward (so called 'H-bridge'). There are many motor drivers available as ready-circuit boards, some can even control two motors  (Dual H-Bridge) - if you connect two of their H-bridges in parallel, the maximum motor current can be increased.&lt;br /&gt;
&lt;br /&gt;
If the direction of the motor does not need to be controlled, (e.g. for the blades), you do not need an H-bridge, but instead a simple 'switch' (e.g. MOSFET-transistor-circuit).&lt;br /&gt;
&lt;br /&gt;
The motor driver is connected through control signals to the Arduino. Example:&lt;br /&gt;
&lt;br /&gt;
  Arduino Digital Pin  —&amp;gt;  MOTOR-Direction Pin (DIR)&lt;br /&gt;
  Arduino PWM Pin      —&amp;gt;  MOTOR-Speed Pin (PWM)&lt;br /&gt;
  Arduino Analog Pin   &amp;lt;—  MOTOR-Current Sensor Pin&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
One pin controls the direction (forward/backward), the other pin controls the speed. One analog input pin is connected to the current sensor. The current sensor module (ACS712-05A) is connected in series with the motor.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery&amp;gt;&lt;br /&gt;
File:Ardumower_motor_driver_circuit.png | NOTE: only for demonstration! See real [http://wiki.ardumower.de/index.php?title=Ardumower_PCB schematics] for concrete wiring&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== PWM frequency ==&lt;br /&gt;
The speed of the motor is controlled by a PWM duty signal. We use the Arduino default PWM frequency (490 Hz) to control the motor drivers.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery&amp;gt;&lt;br /&gt;
File: Arduino_pwm.png | Arduino PWM duty signal&lt;br /&gt;
File: Pwm_490hz.png | PWM 490 Hz: odometry ticks, sense (current) &lt;br /&gt;
File: Pwm_3khz.png | PWM 3.9 Khz: odometry ticks, sense (current) &lt;br /&gt;
File: Pwm_20khz.png | PWM 20 Khz: odometry ticks, sense (current) &lt;br /&gt;
File: Pwm_31khz.png | PWM 31 Khz: odometry ticks, sense (current) &lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Popular modules ==&lt;br /&gt;
=== MC33926 (recommended) ===&lt;br /&gt;
&lt;br /&gt;
Особенности: up to 3A with integrated current sensor and thermal shut-down protection, for all kind of robot mowers) &lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery&amp;gt;&lt;br /&gt;
File:Mc33926.jpg | pinout&lt;br /&gt;
File:Mc33926_example.jpg | jumpers&lt;br /&gt;
File:MC33926_schematics.jpg | schematics&lt;br /&gt;
File:Mc33926_current_limiter.jpg | automatic current limiter&lt;br /&gt;
File:Motor_pwm_50_percent_transients.jpg | Motor start 50% PWM transients&lt;br /&gt;
File:driver_hw_protection.png | Peak/EMF protection&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''&lt;br /&gt;
 M1_FB     --- pinMotorLeftSense A1&lt;br /&gt;
 M1_SF     --- pinMotorLeftFault 25&lt;br /&gt;
 M1_PWM_D1 --- connect with jumper to GND&lt;br /&gt;
 M1_PWM_D2 --- connect with jumper to VDD&lt;br /&gt;
 M1_IN1    --- pinMotorLeftPWM 5  &lt;br /&gt;
 M1_IN2    --- pinMotorLeftDir 31&lt;br /&gt;
 EN        --- pinMotorEnable  37&lt;br /&gt;
 M2_FB     --- pinMotorRightSense A0&lt;br /&gt;
 M2_SF     --- pinMotorRightFault 27&lt;br /&gt;
 M2_PWM_D1 --- connect with jumper to GND&lt;br /&gt;
 M2_PWM_D2 --- connect with jumper to VDD&lt;br /&gt;
 M2_IN1    --- pinMotorRightPWM  3 &lt;br /&gt;
 M2_IN2    --- pinMotorRightDir 33&lt;br /&gt;
 EN        --- pinMotorEnable  37&lt;br /&gt;
 VDD       --- Arduino 5V&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== BTS7960B ===&lt;br /&gt;
&amp;lt;gallery&amp;gt;&lt;br /&gt;
  File: BTS7960B_motor_driver.jpg | Модуль BTS7960B&lt;br /&gt;
  File: BTS7960B_motor_driver1.jpg | Модуль BTS7960B&lt;br /&gt;
  File: BTS7960B_motor_driver2.jpg | Модуль BTS7960B&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Особенности: 5.5-27V, 43A (цена 9 USD)&lt;br /&gt;
&lt;br /&gt;
На один двигатель требуется один модуль.&lt;br /&gt;
&lt;br /&gt;
=== L6201P ===&lt;br /&gt;
&amp;lt;gallery&amp;gt;&lt;br /&gt;
  File: L6201P_motor_driver.jpg | L6201P PCB&lt;br /&gt;
  File: L6201p.png | L6201P datasheet&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Особенности: 48V, 4A&lt;br /&gt;
&lt;br /&gt;
 B+     power supply output voltage equal to the power connector&lt;br /&gt;
 GND    GND&lt;br /&gt;
 EN     driver enable&lt;br /&gt;
 RPWM   forward PWM signal, active HIGH&lt;br /&gt;
 LPWM   reverse PWM signal, active HIGH&lt;br /&gt;
 CT     current signal output&lt;br /&gt;
 VT     voltage signal output&lt;br /&gt;
&lt;br /&gt;
 Forward   EN=1, RPWM=PWM, LPWM=0&lt;br /&gt;
 Reverse   EN=1, RPWM=0,   LPWM=PWM  (also possible?   EN=1, RPWM=255-PWM, LPWM=1  =&amp;gt; needs to be verified!)&lt;br /&gt;
 Brake     EN=1, RPWM=0,   LPWM=0&lt;br /&gt;
 Not brake EN=0, RPWM=x,   LPWM=x&lt;br /&gt;
 Note: 1=High level (3.3-5v), 0=Low level (0V or GND)&lt;br /&gt;
&lt;br /&gt;
=== L9958 ===&lt;br /&gt;
Особенности: Arduino 240W H-bridge Motor Driver Board - SX8847, up to 8A &lt;br /&gt;
&lt;br /&gt;
Note that this module has an on-board [http://en.wikipedia.org/wiki/78xx linear voltage regulator], which converts the input POWER (typically 24 or 12V) to 5V. Some modules do this with a single voltage regulator (chip VR1 on the module), or in a two-staged approach (VR1 and U2). &lt;br /&gt;
&lt;br /&gt;
Converting 24V to 5V with a linear voltage regulator is very inefficient (current in = current out, so if you need 100mA at 5V, the linear voltage regulator requires 100mA at 24V, so you loose 1.9W in this module). Therefore, it is recommended to disconnect the linear voltage regulator from the board, and use the 5V from the switched mode power supply. &lt;br /&gt;
&lt;br /&gt;
 L9958 GND---GND&lt;br /&gt;
 L9958 VCC---Arduino 5V&lt;br /&gt;
 L9958 EN---Arduino 5V&lt;br /&gt;
 L9958 DI---GND&lt;br /&gt;
 L9958 DIR---Arduino MOTOR_DIR&lt;br /&gt;
 L9958 PWM---Arduino MOTOR_PWM&lt;br /&gt;
 L9958 MOTOR(+)---motor(+)&lt;br /&gt;
 L9958 MOTOR(-)---motor(-)&lt;br /&gt;
 L9958 POWER(+)---battery(+)&lt;br /&gt;
 L9958 POWER(-)---battery(-)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery&amp;gt;&lt;br /&gt;
  File: Motor_driver_L9958.jpg&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== L298N ===&lt;br /&gt;
Особенности: up to 4A &lt;br /&gt;
Notice: When using a L298N-motor driver, both H-bridges (2A) should be connected in parallel, so that both bridges drive a single motor (max. 4A):&lt;br /&gt;
&lt;br /&gt;
Connect in parallel:&lt;br /&gt;
 IN1 with IN4&lt;br /&gt;
 IN2 with IN3&lt;br /&gt;
 OUT1 with OUT4&lt;br /&gt;
 OUT2 with OUT3&lt;br /&gt;
(Do NOT disconnect the SENSE-lines, except when you want to measure current by a 'shunt' resistor).&lt;br /&gt;
&lt;br /&gt;
Make sure there is a jumper on both ENA and ENB. Also, make sure there is a jumper on S1.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery&amp;gt;&lt;br /&gt;
File: Motordriver_l298n.JPG | driver &lt;br /&gt;
File: L298driver.jpg | double current&lt;br /&gt;
File: L298N_schematics.jpg | schematics&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= Mower motor and driver =&lt;br /&gt;
&amp;lt;gallery&amp;gt;&lt;br /&gt;
File: ardumower_mower_motor.jpg | Ardumower mower motor&lt;br /&gt;
File: Mower_motor_curve.png | Ardumower mower motor curve&lt;br /&gt;
File: Mower2_start_current.png | Mower start current&lt;br /&gt;
File: Mower4_blocked_500ms_detect_5s_wait.png | Mower blocked, 500ms detection (max), waittime: 5sec (min)&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
The Ardumower mower motor features:&lt;br /&gt;
* Fast enough to cut the lawn (3150 rpm)&lt;br /&gt;
* Enough torque (140 mNm / 46 W)&lt;br /&gt;
* Quiet mowing (you cannot hear it)&lt;br /&gt;
* 24V, load current ~1.0A  (L=2.8mH, R=1.9ohm)&lt;br /&gt;
&lt;br /&gt;
For a the mowing motor, a MOSFET circuit is used. The MOSFET transistor IRLIZ44N (alternatives: IRF1404, IRL540N, RFP30N06LE, FQP30N06L) can already switch a current of 30A at the Arduino 5V control signal (N-LogL). The 10K resistor pulls down to ground when the Arduino starts. The 180 Ohm resistor limits the current at the Gate caused by level switches to about 30mA. The diode (MBR1045) protects  the circuit against current caused by motor induction. A current sensor module (ACS712-30A) is connected in series with the motor.&lt;br /&gt;
&lt;br /&gt;
[[File:warning.png]]'''Security note: For security reasons, always remove mower blades in your first tests!'''&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery&amp;gt;&lt;br /&gt;
File: Ardumower_mower_motor_circuit.png | NOTE: only for demonstration! See real [http://wiki.ardumower.de/index.php?title=Ardumower_PCB schematics] for concrete wiring&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= Choosing a driver =&lt;br /&gt;
&lt;br /&gt;
When purchasing a motor driver, consider...&lt;br /&gt;
* max. thermal load (short-circuit current)&lt;br /&gt;
* price&lt;br /&gt;
&lt;br /&gt;
= Starting current =&lt;br /&gt;
Here are some measurements of the Ardumower motor's starting current (peak):&lt;br /&gt;
&lt;br /&gt;
Starting current:&lt;br /&gt;
* Gear motor: 15A (starting current peak)&lt;br /&gt;
* Mowing motor: 20A (starting current peak)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery&amp;gt;&lt;br /&gt;
File: Messung_einschalt_spitzen.jpg | Gear motor start current (peak)&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= Short-circuit current =&lt;br /&gt;
To not damage the motor driver on the first run, find out the maximum current that can flow through your motors. In other words, find out the 'short-circuit' current. Typical measurement installation:&lt;br /&gt;
&lt;br /&gt;
Battery === Ampere meter === Motor&lt;br /&gt;
&lt;br /&gt;
The Amperemeter (e.g. model making) should be able to measure the maximum current (e.g. 30A). The motor to be measured is mechanically blocked (so it cannot rotate).&lt;br /&gt;
&lt;br /&gt;
'''Warning'''&lt;br /&gt;
&lt;br /&gt;
* always remove blades&lt;br /&gt;
* only connect battery for a short period (1-5 seconds)&lt;br /&gt;
* always use cables with sufficient wire cross section&lt;br /&gt;
&lt;br /&gt;
Example measurement:&lt;br /&gt;
&lt;br /&gt;
* Rotenbach SPM08-320&lt;br /&gt;
** Wheel motor: 8A&lt;br /&gt;
** Mowing motor:&lt;br /&gt;
&lt;br /&gt;
* Ambrogio L50&lt;br /&gt;
** Wheel motor: 4,5A&lt;br /&gt;
** Mowing motor: 22A&lt;br /&gt;
&lt;br /&gt;
* Tianchen TC-G158&lt;br /&gt;
** Wheel motor: 5,4A&lt;br /&gt;
** Mowing motor: 16A (both 32A)&lt;br /&gt;
&lt;br /&gt;
The measured current will only flow in 'worst-case' scenarios, which means when the motor starts or when it is blocked and it will only flow for a short time  (as your battery might not deliver the high current constantly, and so current and voltage will break down).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Current sensor =&lt;br /&gt;
To detect certain conditions (robot drives against obstacle, motor blocks etc.), the motor current should be monitored constantly. There are two approaches for sensing current.&lt;br /&gt;
&lt;br /&gt;
== Approach &amp;quot;Hall sensor module&amp;quot; ==&lt;br /&gt;
This is the recommended approach for sensing current. These current sensor modules are available for different current ranges.&lt;br /&gt;
&lt;br /&gt;
* ACS712ELC-05A (185mV/A, max. 5A)&lt;br /&gt;
* ACS712ELC-20A (100mV/A, max. 20A)&lt;br /&gt;
* ACS712ELC-30A (66mV/A, max. 30A)&lt;br /&gt;
* The lower the range, the more precise the measurement.&lt;br /&gt;
&lt;br /&gt;
== Approach &amp;quot;Shunt resistor (circuit)&amp;quot; ==&lt;br /&gt;
The current flows across a very small resistor (0.5 Ohm) and the voltage drop is measured&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery&amp;gt;&lt;br /&gt;
File: L298n_module_circuit.jpg &lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=Further links=&lt;br /&gt;
#[http://www.ardumower.de/index.php/en/forum/maehwerk/74-10a-pwm-controller-modul-fuer-den-arduino 10A PWM controller module modification]&lt;/div&gt;</summary>
		<author><name>Unlogic</name></author>	</entry>

	<entry>
		<id>https://wiki.ardumower.de/index.php?title=Datei:BTS7960B_motor_driver2.jpg&amp;diff=2748</id>
		<title>Datei:BTS7960B motor driver2.jpg</title>
		<link rel="alternate" type="text/html" href="https://wiki.ardumower.de/index.php?title=Datei:BTS7960B_motor_driver2.jpg&amp;diff=2748"/>
				<updated>2015-08-30T12:32:45Z</updated>
		
		<summary type="html">&lt;p&gt;Unlogic: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Unlogic</name></author>	</entry>

	<entry>
		<id>https://wiki.ardumower.de/index.php?title=Motor_driver_ru&amp;diff=2747</id>
		<title>Motor driver ru</title>
		<link rel="alternate" type="text/html" href="https://wiki.ardumower.de/index.php?title=Motor_driver_ru&amp;diff=2747"/>
				<updated>2015-08-30T12:32:24Z</updated>
		
		<summary type="html">&lt;p&gt;Unlogic: /* BTS7960B */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Описание =&lt;br /&gt;
Ardumower's design uses two different types of motors (all motors can be purchased via the [https://www.marotronics.de/index.php?k=7 shop] [[File: shopping.png|link=https://www.marotronics.de/index.php?k=7]]):&lt;br /&gt;
* Two motors (with integrated gearing) for driving (wheel motors), and encoder (for distance, direction and speed control)&lt;br /&gt;
* One motor (with high rotation speed) for mowing (mower motor)&lt;br /&gt;
&lt;br /&gt;
To control a motor, it requires a 'motor driver'.&lt;br /&gt;
&lt;br /&gt;
= Voltages =&lt;br /&gt;
Although there exist 12V motors and 24V motors, as in all modern systems, the Ardumower uses 24V motors. The reason is as follows:&lt;br /&gt;
&lt;br /&gt;
Assuming that the motor consumes 50W, using 24V results to a motor current: 50W / 24V = 2A.&lt;br /&gt;
&lt;br /&gt;
Assuming that the motor consumes 50W, using 12V results to a motor current: 50W / 12V = 4A.&lt;br /&gt;
&lt;br /&gt;
The higher the current (A), the more problems arise:&lt;br /&gt;
&lt;br /&gt;
* The motor driver must be suitable for higher current (more expensive)&lt;br /&gt;
* The PCB traces need to be more thick (more expensive)&lt;br /&gt;
* The rechargable battery need to support higher current (more expensive)&lt;br /&gt;
&lt;br /&gt;
So, that's the reason why Ardumower is designed as a 24V system.&lt;br /&gt;
&lt;br /&gt;
= Wheel motors =&lt;br /&gt;
&amp;lt;gallery&amp;gt;&lt;br /&gt;
  File: ardumower_motor.jpg | Ardumower gear motor with encoder (8mm diameter, 5900 rpm motor, 0.055 Nm, gear ratio 1/212, output torque 2.45Nm, output rpm 31)&lt;br /&gt;
  File: wheel_motor_diagram.png | Ardumower gear motor curve (motor only)&lt;br /&gt;
  File:decrease_motor_noise.png | Decrease motor noise&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
The two left and right gear motors are controlled independently (aka 'differential driving') to:&lt;br /&gt;
&lt;br /&gt;
* drive the robot forward/backward&lt;br /&gt;
* steer the robot left/right&lt;br /&gt;
&lt;br /&gt;
The Ardumower wheel motor features:&lt;br /&gt;
* A rotation speed up to 31 rpm allows to move the robot at sufficient speed (at up to meter/sec = 31rpm/60 * PI * 0.25m  = 0.4m/sec using 250mm diameter wheels)&lt;br /&gt;
* A high torque (2.45Nm) guarantees that the robot can climb small hills as well (with 2 motors, 0.125 radius wheel, 31rpm = 0.4m/s, acceleration = 0.2 ( 1/2 of nomeinal speed) up to 14 degree) [http://www.robotshop.com/blog/en/drive-motor-sizing-tool-9698 see calculator]&lt;br /&gt;
* Integrated encoders, so it can measure the rotation speed, the distance and the direction (see [[Odometry]] for more information) - Encoders are REQUIRED for Ardumower software.&lt;br /&gt;
* 24V  (load current ~1A)&lt;br /&gt;
&lt;br /&gt;
= Motor driver =&lt;br /&gt;
A motor driver is a circuit that allows current to flow either one direction or the opposite direction through the motor - depending on wether the motor should turn forward or backward (so called 'H-bridge'). There are many motor drivers available as ready-circuit boards, some can even control two motors  (Dual H-Bridge) - if you connect two of their H-bridges in parallel, the maximum motor current can be increased.&lt;br /&gt;
&lt;br /&gt;
If the direction of the motor does not need to be controlled, (e.g. for the blades), you do not need an H-bridge, but instead a simple 'switch' (e.g. MOSFET-transistor-circuit).&lt;br /&gt;
&lt;br /&gt;
The motor driver is connected through control signals to the Arduino. Example:&lt;br /&gt;
&lt;br /&gt;
  Arduino Digital Pin  —&amp;gt;  MOTOR-Direction Pin (DIR)&lt;br /&gt;
  Arduino PWM Pin      —&amp;gt;  MOTOR-Speed Pin (PWM)&lt;br /&gt;
  Arduino Analog Pin   &amp;lt;—  MOTOR-Current Sensor Pin&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
One pin controls the direction (forward/backward), the other pin controls the speed. One analog input pin is connected to the current sensor. The current sensor module (ACS712-05A) is connected in series with the motor.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery&amp;gt;&lt;br /&gt;
File:Ardumower_motor_driver_circuit.png | NOTE: only for demonstration! See real [http://wiki.ardumower.de/index.php?title=Ardumower_PCB schematics] for concrete wiring&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== PWM frequency ==&lt;br /&gt;
The speed of the motor is controlled by a PWM duty signal. We use the Arduino default PWM frequency (490 Hz) to control the motor drivers.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery&amp;gt;&lt;br /&gt;
File: Arduino_pwm.png | Arduino PWM duty signal&lt;br /&gt;
File: Pwm_490hz.png | PWM 490 Hz: odometry ticks, sense (current) &lt;br /&gt;
File: Pwm_3khz.png | PWM 3.9 Khz: odometry ticks, sense (current) &lt;br /&gt;
File: Pwm_20khz.png | PWM 20 Khz: odometry ticks, sense (current) &lt;br /&gt;
File: Pwm_31khz.png | PWM 31 Khz: odometry ticks, sense (current) &lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Popular modules ==&lt;br /&gt;
=== MC33926 (recommended) ===&lt;br /&gt;
&lt;br /&gt;
Особенности: up to 3A with integrated current sensor and thermal shut-down protection, for all kind of robot mowers) &lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery&amp;gt;&lt;br /&gt;
File:Mc33926.jpg | pinout&lt;br /&gt;
File:Mc33926_example.jpg | jumpers&lt;br /&gt;
File:MC33926_schematics.jpg | schematics&lt;br /&gt;
File:Mc33926_current_limiter.jpg | automatic current limiter&lt;br /&gt;
File:Motor_pwm_50_percent_transients.jpg | Motor start 50% PWM transients&lt;br /&gt;
File:driver_hw_protection.png | Peak/EMF protection&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''&lt;br /&gt;
 M1_FB     --- pinMotorLeftSense A1&lt;br /&gt;
 M1_SF     --- pinMotorLeftFault 25&lt;br /&gt;
 M1_PWM_D1 --- connect with jumper to GND&lt;br /&gt;
 M1_PWM_D2 --- connect with jumper to VDD&lt;br /&gt;
 M1_IN1    --- pinMotorLeftPWM 5  &lt;br /&gt;
 M1_IN2    --- pinMotorLeftDir 31&lt;br /&gt;
 EN        --- pinMotorEnable  37&lt;br /&gt;
 M2_FB     --- pinMotorRightSense A0&lt;br /&gt;
 M2_SF     --- pinMotorRightFault 27&lt;br /&gt;
 M2_PWM_D1 --- connect with jumper to GND&lt;br /&gt;
 M2_PWM_D2 --- connect with jumper to VDD&lt;br /&gt;
 M2_IN1    --- pinMotorRightPWM  3 &lt;br /&gt;
 M2_IN2    --- pinMotorRightDir 33&lt;br /&gt;
 EN        --- pinMotorEnable  37&lt;br /&gt;
 VDD       --- Arduino 5V&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== BTS7960B ===&lt;br /&gt;
&amp;lt;gallery&amp;gt;&lt;br /&gt;
  File: BTS7960B_motor_driver.jpg | Модуль BTS7960B&lt;br /&gt;
  File: BTS7960B_motor_driver1.jpg | Модуль BTS7960B&lt;br /&gt;
  File: BTS7960B_motor_driver2.jpg | Модуль BTS7960B&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Особенности: 5.5-27V, 43A (цена 9 USD)&lt;br /&gt;
На один двигатель требуется один модуль.&lt;br /&gt;
&lt;br /&gt;
=== L6201P ===&lt;br /&gt;
&amp;lt;gallery&amp;gt;&lt;br /&gt;
  File: L6201P_motor_driver.jpg | L6201P PCB&lt;br /&gt;
  File: L6201p.png | L6201P datasheet&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Особенности: 48V, 4A&lt;br /&gt;
&lt;br /&gt;
 B+     power supply output voltage equal to the power connector&lt;br /&gt;
 GND    GND&lt;br /&gt;
 EN     driver enable&lt;br /&gt;
 RPWM   forward PWM signal, active HIGH&lt;br /&gt;
 LPWM   reverse PWM signal, active HIGH&lt;br /&gt;
 CT     current signal output&lt;br /&gt;
 VT     voltage signal output&lt;br /&gt;
&lt;br /&gt;
 Forward   EN=1, RPWM=PWM, LPWM=0&lt;br /&gt;
 Reverse   EN=1, RPWM=0,   LPWM=PWM  (also possible?   EN=1, RPWM=255-PWM, LPWM=1  =&amp;gt; needs to be verified!)&lt;br /&gt;
 Brake     EN=1, RPWM=0,   LPWM=0&lt;br /&gt;
 Not brake EN=0, RPWM=x,   LPWM=x&lt;br /&gt;
 Note: 1=High level (3.3-5v), 0=Low level (0V or GND)&lt;br /&gt;
&lt;br /&gt;
=== L9958 ===&lt;br /&gt;
Особенности: Arduino 240W H-bridge Motor Driver Board - SX8847, up to 8A &lt;br /&gt;
&lt;br /&gt;
Note that this module has an on-board [http://en.wikipedia.org/wiki/78xx linear voltage regulator], which converts the input POWER (typically 24 or 12V) to 5V. Some modules do this with a single voltage regulator (chip VR1 on the module), or in a two-staged approach (VR1 and U2). &lt;br /&gt;
&lt;br /&gt;
Converting 24V to 5V with a linear voltage regulator is very inefficient (current in = current out, so if you need 100mA at 5V, the linear voltage regulator requires 100mA at 24V, so you loose 1.9W in this module). Therefore, it is recommended to disconnect the linear voltage regulator from the board, and use the 5V from the switched mode power supply. &lt;br /&gt;
&lt;br /&gt;
 L9958 GND---GND&lt;br /&gt;
 L9958 VCC---Arduino 5V&lt;br /&gt;
 L9958 EN---Arduino 5V&lt;br /&gt;
 L9958 DI---GND&lt;br /&gt;
 L9958 DIR---Arduino MOTOR_DIR&lt;br /&gt;
 L9958 PWM---Arduino MOTOR_PWM&lt;br /&gt;
 L9958 MOTOR(+)---motor(+)&lt;br /&gt;
 L9958 MOTOR(-)---motor(-)&lt;br /&gt;
 L9958 POWER(+)---battery(+)&lt;br /&gt;
 L9958 POWER(-)---battery(-)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery&amp;gt;&lt;br /&gt;
  File: Motor_driver_L9958.jpg&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== L298N ===&lt;br /&gt;
Особенности: up to 4A &lt;br /&gt;
Notice: When using a L298N-motor driver, both H-bridges (2A) should be connected in parallel, so that both bridges drive a single motor (max. 4A):&lt;br /&gt;
&lt;br /&gt;
Connect in parallel:&lt;br /&gt;
 IN1 with IN4&lt;br /&gt;
 IN2 with IN3&lt;br /&gt;
 OUT1 with OUT4&lt;br /&gt;
 OUT2 with OUT3&lt;br /&gt;
(Do NOT disconnect the SENSE-lines, except when you want to measure current by a 'shunt' resistor).&lt;br /&gt;
&lt;br /&gt;
Make sure there is a jumper on both ENA and ENB. Also, make sure there is a jumper on S1.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery&amp;gt;&lt;br /&gt;
File: Motordriver_l298n.JPG | driver &lt;br /&gt;
File: L298driver.jpg | double current&lt;br /&gt;
File: L298N_schematics.jpg | schematics&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= Mower motor and driver =&lt;br /&gt;
&amp;lt;gallery&amp;gt;&lt;br /&gt;
File: ardumower_mower_motor.jpg | Ardumower mower motor&lt;br /&gt;
File: Mower_motor_curve.png | Ardumower mower motor curve&lt;br /&gt;
File: Mower2_start_current.png | Mower start current&lt;br /&gt;
File: Mower4_blocked_500ms_detect_5s_wait.png | Mower blocked, 500ms detection (max), waittime: 5sec (min)&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
The Ardumower mower motor features:&lt;br /&gt;
* Fast enough to cut the lawn (3150 rpm)&lt;br /&gt;
* Enough torque (140 mNm / 46 W)&lt;br /&gt;
* Quiet mowing (you cannot hear it)&lt;br /&gt;
* 24V, load current ~1.0A  (L=2.8mH, R=1.9ohm)&lt;br /&gt;
&lt;br /&gt;
For a the mowing motor, a MOSFET circuit is used. The MOSFET transistor IRLIZ44N (alternatives: IRF1404, IRL540N, RFP30N06LE, FQP30N06L) can already switch a current of 30A at the Arduino 5V control signal (N-LogL). The 10K resistor pulls down to ground when the Arduino starts. The 180 Ohm resistor limits the current at the Gate caused by level switches to about 30mA. The diode (MBR1045) protects  the circuit against current caused by motor induction. A current sensor module (ACS712-30A) is connected in series with the motor.&lt;br /&gt;
&lt;br /&gt;
[[File:warning.png]]'''Security note: For security reasons, always remove mower blades in your first tests!'''&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery&amp;gt;&lt;br /&gt;
File: Ardumower_mower_motor_circuit.png | NOTE: only for demonstration! See real [http://wiki.ardumower.de/index.php?title=Ardumower_PCB schematics] for concrete wiring&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= Choosing a driver =&lt;br /&gt;
&lt;br /&gt;
When purchasing a motor driver, consider...&lt;br /&gt;
* max. thermal load (short-circuit current)&lt;br /&gt;
* price&lt;br /&gt;
&lt;br /&gt;
= Starting current =&lt;br /&gt;
Here are some measurements of the Ardumower motor's starting current (peak):&lt;br /&gt;
&lt;br /&gt;
Starting current:&lt;br /&gt;
* Gear motor: 15A (starting current peak)&lt;br /&gt;
* Mowing motor: 20A (starting current peak)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery&amp;gt;&lt;br /&gt;
File: Messung_einschalt_spitzen.jpg | Gear motor start current (peak)&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= Short-circuit current =&lt;br /&gt;
To not damage the motor driver on the first run, find out the maximum current that can flow through your motors. In other words, find out the 'short-circuit' current. Typical measurement installation:&lt;br /&gt;
&lt;br /&gt;
Battery === Ampere meter === Motor&lt;br /&gt;
&lt;br /&gt;
The Amperemeter (e.g. model making) should be able to measure the maximum current (e.g. 30A). The motor to be measured is mechanically blocked (so it cannot rotate).&lt;br /&gt;
&lt;br /&gt;
'''Warning'''&lt;br /&gt;
&lt;br /&gt;
* always remove blades&lt;br /&gt;
* only connect battery for a short period (1-5 seconds)&lt;br /&gt;
* always use cables with sufficient wire cross section&lt;br /&gt;
&lt;br /&gt;
Example measurement:&lt;br /&gt;
&lt;br /&gt;
* Rotenbach SPM08-320&lt;br /&gt;
** Wheel motor: 8A&lt;br /&gt;
** Mowing motor:&lt;br /&gt;
&lt;br /&gt;
* Ambrogio L50&lt;br /&gt;
** Wheel motor: 4,5A&lt;br /&gt;
** Mowing motor: 22A&lt;br /&gt;
&lt;br /&gt;
* Tianchen TC-G158&lt;br /&gt;
** Wheel motor: 5,4A&lt;br /&gt;
** Mowing motor: 16A (both 32A)&lt;br /&gt;
&lt;br /&gt;
The measured current will only flow in 'worst-case' scenarios, which means when the motor starts or when it is blocked and it will only flow for a short time  (as your battery might not deliver the high current constantly, and so current and voltage will break down).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Current sensor =&lt;br /&gt;
To detect certain conditions (robot drives against obstacle, motor blocks etc.), the motor current should be monitored constantly. There are two approaches for sensing current.&lt;br /&gt;
&lt;br /&gt;
== Approach &amp;quot;Hall sensor module&amp;quot; ==&lt;br /&gt;
This is the recommended approach for sensing current. These current sensor modules are available for different current ranges.&lt;br /&gt;
&lt;br /&gt;
* ACS712ELC-05A (185mV/A, max. 5A)&lt;br /&gt;
* ACS712ELC-20A (100mV/A, max. 20A)&lt;br /&gt;
* ACS712ELC-30A (66mV/A, max. 30A)&lt;br /&gt;
* The lower the range, the more precise the measurement.&lt;br /&gt;
&lt;br /&gt;
== Approach &amp;quot;Shunt resistor (circuit)&amp;quot; ==&lt;br /&gt;
The current flows across a very small resistor (0.5 Ohm) and the voltage drop is measured&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery&amp;gt;&lt;br /&gt;
File: L298n_module_circuit.jpg &lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=Further links=&lt;br /&gt;
#[http://www.ardumower.de/index.php/en/forum/maehwerk/74-10a-pwm-controller-modul-fuer-den-arduino 10A PWM controller module modification]&lt;/div&gt;</summary>
		<author><name>Unlogic</name></author>	</entry>

	<entry>
		<id>https://wiki.ardumower.de/index.php?title=Motor_driver_ru&amp;diff=2746</id>
		<title>Motor driver ru</title>
		<link rel="alternate" type="text/html" href="https://wiki.ardumower.de/index.php?title=Motor_driver_ru&amp;diff=2746"/>
				<updated>2015-08-30T12:30:09Z</updated>
		
		<summary type="html">&lt;p&gt;Unlogic: /* BTS7960B */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Описание =&lt;br /&gt;
Ardumower's design uses two different types of motors (all motors can be purchased via the [https://www.marotronics.de/index.php?k=7 shop] [[File: shopping.png|link=https://www.marotronics.de/index.php?k=7]]):&lt;br /&gt;
* Two motors (with integrated gearing) for driving (wheel motors), and encoder (for distance, direction and speed control)&lt;br /&gt;
* One motor (with high rotation speed) for mowing (mower motor)&lt;br /&gt;
&lt;br /&gt;
To control a motor, it requires a 'motor driver'.&lt;br /&gt;
&lt;br /&gt;
= Voltages =&lt;br /&gt;
Although there exist 12V motors and 24V motors, as in all modern systems, the Ardumower uses 24V motors. The reason is as follows:&lt;br /&gt;
&lt;br /&gt;
Assuming that the motor consumes 50W, using 24V results to a motor current: 50W / 24V = 2A.&lt;br /&gt;
&lt;br /&gt;
Assuming that the motor consumes 50W, using 12V results to a motor current: 50W / 12V = 4A.&lt;br /&gt;
&lt;br /&gt;
The higher the current (A), the more problems arise:&lt;br /&gt;
&lt;br /&gt;
* The motor driver must be suitable for higher current (more expensive)&lt;br /&gt;
* The PCB traces need to be more thick (more expensive)&lt;br /&gt;
* The rechargable battery need to support higher current (more expensive)&lt;br /&gt;
&lt;br /&gt;
So, that's the reason why Ardumower is designed as a 24V system.&lt;br /&gt;
&lt;br /&gt;
= Wheel motors =&lt;br /&gt;
&amp;lt;gallery&amp;gt;&lt;br /&gt;
  File: ardumower_motor.jpg | Ardumower gear motor with encoder (8mm diameter, 5900 rpm motor, 0.055 Nm, gear ratio 1/212, output torque 2.45Nm, output rpm 31)&lt;br /&gt;
  File: wheel_motor_diagram.png | Ardumower gear motor curve (motor only)&lt;br /&gt;
  File:decrease_motor_noise.png | Decrease motor noise&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
The two left and right gear motors are controlled independently (aka 'differential driving') to:&lt;br /&gt;
&lt;br /&gt;
* drive the robot forward/backward&lt;br /&gt;
* steer the robot left/right&lt;br /&gt;
&lt;br /&gt;
The Ardumower wheel motor features:&lt;br /&gt;
* A rotation speed up to 31 rpm allows to move the robot at sufficient speed (at up to meter/sec = 31rpm/60 * PI * 0.25m  = 0.4m/sec using 250mm diameter wheels)&lt;br /&gt;
* A high torque (2.45Nm) guarantees that the robot can climb small hills as well (with 2 motors, 0.125 radius wheel, 31rpm = 0.4m/s, acceleration = 0.2 ( 1/2 of nomeinal speed) up to 14 degree) [http://www.robotshop.com/blog/en/drive-motor-sizing-tool-9698 see calculator]&lt;br /&gt;
* Integrated encoders, so it can measure the rotation speed, the distance and the direction (see [[Odometry]] for more information) - Encoders are REQUIRED for Ardumower software.&lt;br /&gt;
* 24V  (load current ~1A)&lt;br /&gt;
&lt;br /&gt;
= Motor driver =&lt;br /&gt;
A motor driver is a circuit that allows current to flow either one direction or the opposite direction through the motor - depending on wether the motor should turn forward or backward (so called 'H-bridge'). There are many motor drivers available as ready-circuit boards, some can even control two motors  (Dual H-Bridge) - if you connect two of their H-bridges in parallel, the maximum motor current can be increased.&lt;br /&gt;
&lt;br /&gt;
If the direction of the motor does not need to be controlled, (e.g. for the blades), you do not need an H-bridge, but instead a simple 'switch' (e.g. MOSFET-transistor-circuit).&lt;br /&gt;
&lt;br /&gt;
The motor driver is connected through control signals to the Arduino. Example:&lt;br /&gt;
&lt;br /&gt;
  Arduino Digital Pin  —&amp;gt;  MOTOR-Direction Pin (DIR)&lt;br /&gt;
  Arduino PWM Pin      —&amp;gt;  MOTOR-Speed Pin (PWM)&lt;br /&gt;
  Arduino Analog Pin   &amp;lt;—  MOTOR-Current Sensor Pin&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
One pin controls the direction (forward/backward), the other pin controls the speed. One analog input pin is connected to the current sensor. The current sensor module (ACS712-05A) is connected in series with the motor.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery&amp;gt;&lt;br /&gt;
File:Ardumower_motor_driver_circuit.png | NOTE: only for demonstration! See real [http://wiki.ardumower.de/index.php?title=Ardumower_PCB schematics] for concrete wiring&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== PWM frequency ==&lt;br /&gt;
The speed of the motor is controlled by a PWM duty signal. We use the Arduino default PWM frequency (490 Hz) to control the motor drivers.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery&amp;gt;&lt;br /&gt;
File: Arduino_pwm.png | Arduino PWM duty signal&lt;br /&gt;
File: Pwm_490hz.png | PWM 490 Hz: odometry ticks, sense (current) &lt;br /&gt;
File: Pwm_3khz.png | PWM 3.9 Khz: odometry ticks, sense (current) &lt;br /&gt;
File: Pwm_20khz.png | PWM 20 Khz: odometry ticks, sense (current) &lt;br /&gt;
File: Pwm_31khz.png | PWM 31 Khz: odometry ticks, sense (current) &lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Popular modules ==&lt;br /&gt;
=== MC33926 (recommended) ===&lt;br /&gt;
&lt;br /&gt;
Особенности: up to 3A with integrated current sensor and thermal shut-down protection, for all kind of robot mowers) &lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery&amp;gt;&lt;br /&gt;
File:Mc33926.jpg | pinout&lt;br /&gt;
File:Mc33926_example.jpg | jumpers&lt;br /&gt;
File:MC33926_schematics.jpg | schematics&lt;br /&gt;
File:Mc33926_current_limiter.jpg | automatic current limiter&lt;br /&gt;
File:Motor_pwm_50_percent_transients.jpg | Motor start 50% PWM transients&lt;br /&gt;
File:driver_hw_protection.png | Peak/EMF protection&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''&lt;br /&gt;
 M1_FB     --- pinMotorLeftSense A1&lt;br /&gt;
 M1_SF     --- pinMotorLeftFault 25&lt;br /&gt;
 M1_PWM_D1 --- connect with jumper to GND&lt;br /&gt;
 M1_PWM_D2 --- connect with jumper to VDD&lt;br /&gt;
 M1_IN1    --- pinMotorLeftPWM 5  &lt;br /&gt;
 M1_IN2    --- pinMotorLeftDir 31&lt;br /&gt;
 EN        --- pinMotorEnable  37&lt;br /&gt;
 M2_FB     --- pinMotorRightSense A0&lt;br /&gt;
 M2_SF     --- pinMotorRightFault 27&lt;br /&gt;
 M2_PWM_D1 --- connect with jumper to GND&lt;br /&gt;
 M2_PWM_D2 --- connect with jumper to VDD&lt;br /&gt;
 M2_IN1    --- pinMotorRightPWM  3 &lt;br /&gt;
 M2_IN2    --- pinMotorRightDir 33&lt;br /&gt;
 EN        --- pinMotorEnable  37&lt;br /&gt;
 VDD       --- Arduino 5V&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== BTS7960B ===&lt;br /&gt;
&amp;lt;gallery&amp;gt;&lt;br /&gt;
  File: BTS7960B_motor_driver.jpg | Модуль BTS7960B&lt;br /&gt;
  File: BTS7960B_motor_driver1.jpg | Модуль BTS7960B&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Особенности: 5.5-27V, 43A (цена 9 USD)&lt;br /&gt;
&lt;br /&gt;
=== L6201P ===&lt;br /&gt;
&amp;lt;gallery&amp;gt;&lt;br /&gt;
  File: L6201P_motor_driver.jpg | L6201P PCB&lt;br /&gt;
  File: L6201p.png | L6201P datasheet&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Особенности: 48V, 4A&lt;br /&gt;
&lt;br /&gt;
 B+     power supply output voltage equal to the power connector&lt;br /&gt;
 GND    GND&lt;br /&gt;
 EN     driver enable&lt;br /&gt;
 RPWM   forward PWM signal, active HIGH&lt;br /&gt;
 LPWM   reverse PWM signal, active HIGH&lt;br /&gt;
 CT     current signal output&lt;br /&gt;
 VT     voltage signal output&lt;br /&gt;
&lt;br /&gt;
 Forward   EN=1, RPWM=PWM, LPWM=0&lt;br /&gt;
 Reverse   EN=1, RPWM=0,   LPWM=PWM  (also possible?   EN=1, RPWM=255-PWM, LPWM=1  =&amp;gt; needs to be verified!)&lt;br /&gt;
 Brake     EN=1, RPWM=0,   LPWM=0&lt;br /&gt;
 Not brake EN=0, RPWM=x,   LPWM=x&lt;br /&gt;
 Note: 1=High level (3.3-5v), 0=Low level (0V or GND)&lt;br /&gt;
&lt;br /&gt;
=== L9958 ===&lt;br /&gt;
Особенности: Arduino 240W H-bridge Motor Driver Board - SX8847, up to 8A &lt;br /&gt;
&lt;br /&gt;
Note that this module has an on-board [http://en.wikipedia.org/wiki/78xx linear voltage regulator], which converts the input POWER (typically 24 or 12V) to 5V. Some modules do this with a single voltage regulator (chip VR1 on the module), or in a two-staged approach (VR1 and U2). &lt;br /&gt;
&lt;br /&gt;
Converting 24V to 5V with a linear voltage regulator is very inefficient (current in = current out, so if you need 100mA at 5V, the linear voltage regulator requires 100mA at 24V, so you loose 1.9W in this module). Therefore, it is recommended to disconnect the linear voltage regulator from the board, and use the 5V from the switched mode power supply. &lt;br /&gt;
&lt;br /&gt;
 L9958 GND---GND&lt;br /&gt;
 L9958 VCC---Arduino 5V&lt;br /&gt;
 L9958 EN---Arduino 5V&lt;br /&gt;
 L9958 DI---GND&lt;br /&gt;
 L9958 DIR---Arduino MOTOR_DIR&lt;br /&gt;
 L9958 PWM---Arduino MOTOR_PWM&lt;br /&gt;
 L9958 MOTOR(+)---motor(+)&lt;br /&gt;
 L9958 MOTOR(-)---motor(-)&lt;br /&gt;
 L9958 POWER(+)---battery(+)&lt;br /&gt;
 L9958 POWER(-)---battery(-)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery&amp;gt;&lt;br /&gt;
  File: Motor_driver_L9958.jpg&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== L298N ===&lt;br /&gt;
Особенности: up to 4A &lt;br /&gt;
Notice: When using a L298N-motor driver, both H-bridges (2A) should be connected in parallel, so that both bridges drive a single motor (max. 4A):&lt;br /&gt;
&lt;br /&gt;
Connect in parallel:&lt;br /&gt;
 IN1 with IN4&lt;br /&gt;
 IN2 with IN3&lt;br /&gt;
 OUT1 with OUT4&lt;br /&gt;
 OUT2 with OUT3&lt;br /&gt;
(Do NOT disconnect the SENSE-lines, except when you want to measure current by a 'shunt' resistor).&lt;br /&gt;
&lt;br /&gt;
Make sure there is a jumper on both ENA and ENB. Also, make sure there is a jumper on S1.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery&amp;gt;&lt;br /&gt;
File: Motordriver_l298n.JPG | driver &lt;br /&gt;
File: L298driver.jpg | double current&lt;br /&gt;
File: L298N_schematics.jpg | schematics&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= Mower motor and driver =&lt;br /&gt;
&amp;lt;gallery&amp;gt;&lt;br /&gt;
File: ardumower_mower_motor.jpg | Ardumower mower motor&lt;br /&gt;
File: Mower_motor_curve.png | Ardumower mower motor curve&lt;br /&gt;
File: Mower2_start_current.png | Mower start current&lt;br /&gt;
File: Mower4_blocked_500ms_detect_5s_wait.png | Mower blocked, 500ms detection (max), waittime: 5sec (min)&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
The Ardumower mower motor features:&lt;br /&gt;
* Fast enough to cut the lawn (3150 rpm)&lt;br /&gt;
* Enough torque (140 mNm / 46 W)&lt;br /&gt;
* Quiet mowing (you cannot hear it)&lt;br /&gt;
* 24V, load current ~1.0A  (L=2.8mH, R=1.9ohm)&lt;br /&gt;
&lt;br /&gt;
For a the mowing motor, a MOSFET circuit is used. The MOSFET transistor IRLIZ44N (alternatives: IRF1404, IRL540N, RFP30N06LE, FQP30N06L) can already switch a current of 30A at the Arduino 5V control signal (N-LogL). The 10K resistor pulls down to ground when the Arduino starts. The 180 Ohm resistor limits the current at the Gate caused by level switches to about 30mA. The diode (MBR1045) protects  the circuit against current caused by motor induction. A current sensor module (ACS712-30A) is connected in series with the motor.&lt;br /&gt;
&lt;br /&gt;
[[File:warning.png]]'''Security note: For security reasons, always remove mower blades in your first tests!'''&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery&amp;gt;&lt;br /&gt;
File: Ardumower_mower_motor_circuit.png | NOTE: only for demonstration! See real [http://wiki.ardumower.de/index.php?title=Ardumower_PCB schematics] for concrete wiring&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= Choosing a driver =&lt;br /&gt;
&lt;br /&gt;
When purchasing a motor driver, consider...&lt;br /&gt;
* max. thermal load (short-circuit current)&lt;br /&gt;
* price&lt;br /&gt;
&lt;br /&gt;
= Starting current =&lt;br /&gt;
Here are some measurements of the Ardumower motor's starting current (peak):&lt;br /&gt;
&lt;br /&gt;
Starting current:&lt;br /&gt;
* Gear motor: 15A (starting current peak)&lt;br /&gt;
* Mowing motor: 20A (starting current peak)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery&amp;gt;&lt;br /&gt;
File: Messung_einschalt_spitzen.jpg | Gear motor start current (peak)&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= Short-circuit current =&lt;br /&gt;
To not damage the motor driver on the first run, find out the maximum current that can flow through your motors. In other words, find out the 'short-circuit' current. Typical measurement installation:&lt;br /&gt;
&lt;br /&gt;
Battery === Ampere meter === Motor&lt;br /&gt;
&lt;br /&gt;
The Amperemeter (e.g. model making) should be able to measure the maximum current (e.g. 30A). The motor to be measured is mechanically blocked (so it cannot rotate).&lt;br /&gt;
&lt;br /&gt;
'''Warning'''&lt;br /&gt;
&lt;br /&gt;
* always remove blades&lt;br /&gt;
* only connect battery for a short period (1-5 seconds)&lt;br /&gt;
* always use cables with sufficient wire cross section&lt;br /&gt;
&lt;br /&gt;
Example measurement:&lt;br /&gt;
&lt;br /&gt;
* Rotenbach SPM08-320&lt;br /&gt;
** Wheel motor: 8A&lt;br /&gt;
** Mowing motor:&lt;br /&gt;
&lt;br /&gt;
* Ambrogio L50&lt;br /&gt;
** Wheel motor: 4,5A&lt;br /&gt;
** Mowing motor: 22A&lt;br /&gt;
&lt;br /&gt;
* Tianchen TC-G158&lt;br /&gt;
** Wheel motor: 5,4A&lt;br /&gt;
** Mowing motor: 16A (both 32A)&lt;br /&gt;
&lt;br /&gt;
The measured current will only flow in 'worst-case' scenarios, which means when the motor starts or when it is blocked and it will only flow for a short time  (as your battery might not deliver the high current constantly, and so current and voltage will break down).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Current sensor =&lt;br /&gt;
To detect certain conditions (robot drives against obstacle, motor blocks etc.), the motor current should be monitored constantly. There are two approaches for sensing current.&lt;br /&gt;
&lt;br /&gt;
== Approach &amp;quot;Hall sensor module&amp;quot; ==&lt;br /&gt;
This is the recommended approach for sensing current. These current sensor modules are available for different current ranges.&lt;br /&gt;
&lt;br /&gt;
* ACS712ELC-05A (185mV/A, max. 5A)&lt;br /&gt;
* ACS712ELC-20A (100mV/A, max. 20A)&lt;br /&gt;
* ACS712ELC-30A (66mV/A, max. 30A)&lt;br /&gt;
* The lower the range, the more precise the measurement.&lt;br /&gt;
&lt;br /&gt;
== Approach &amp;quot;Shunt resistor (circuit)&amp;quot; ==&lt;br /&gt;
The current flows across a very small resistor (0.5 Ohm) and the voltage drop is measured&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery&amp;gt;&lt;br /&gt;
File: L298n_module_circuit.jpg &lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=Further links=&lt;br /&gt;
#[http://www.ardumower.de/index.php/en/forum/maehwerk/74-10a-pwm-controller-modul-fuer-den-arduino 10A PWM controller module modification]&lt;/div&gt;</summary>
		<author><name>Unlogic</name></author>	</entry>

	<entry>
		<id>https://wiki.ardumower.de/index.php?title=Motor_driver_ru&amp;diff=2745</id>
		<title>Motor driver ru</title>
		<link rel="alternate" type="text/html" href="https://wiki.ardumower.de/index.php?title=Motor_driver_ru&amp;diff=2745"/>
				<updated>2015-08-30T12:28:56Z</updated>
		
		<summary type="html">&lt;p&gt;Unlogic: /* BTS7960B */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Описание =&lt;br /&gt;
Ardumower's design uses two different types of motors (all motors can be purchased via the [https://www.marotronics.de/index.php?k=7 shop] [[File: shopping.png|link=https://www.marotronics.de/index.php?k=7]]):&lt;br /&gt;
* Two motors (with integrated gearing) for driving (wheel motors), and encoder (for distance, direction and speed control)&lt;br /&gt;
* One motor (with high rotation speed) for mowing (mower motor)&lt;br /&gt;
&lt;br /&gt;
To control a motor, it requires a 'motor driver'.&lt;br /&gt;
&lt;br /&gt;
= Voltages =&lt;br /&gt;
Although there exist 12V motors and 24V motors, as in all modern systems, the Ardumower uses 24V motors. The reason is as follows:&lt;br /&gt;
&lt;br /&gt;
Assuming that the motor consumes 50W, using 24V results to a motor current: 50W / 24V = 2A.&lt;br /&gt;
&lt;br /&gt;
Assuming that the motor consumes 50W, using 12V results to a motor current: 50W / 12V = 4A.&lt;br /&gt;
&lt;br /&gt;
The higher the current (A), the more problems arise:&lt;br /&gt;
&lt;br /&gt;
* The motor driver must be suitable for higher current (more expensive)&lt;br /&gt;
* The PCB traces need to be more thick (more expensive)&lt;br /&gt;
* The rechargable battery need to support higher current (more expensive)&lt;br /&gt;
&lt;br /&gt;
So, that's the reason why Ardumower is designed as a 24V system.&lt;br /&gt;
&lt;br /&gt;
= Wheel motors =&lt;br /&gt;
&amp;lt;gallery&amp;gt;&lt;br /&gt;
  File: ardumower_motor.jpg | Ardumower gear motor with encoder (8mm diameter, 5900 rpm motor, 0.055 Nm, gear ratio 1/212, output torque 2.45Nm, output rpm 31)&lt;br /&gt;
  File: wheel_motor_diagram.png | Ardumower gear motor curve (motor only)&lt;br /&gt;
  File:decrease_motor_noise.png | Decrease motor noise&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
The two left and right gear motors are controlled independently (aka 'differential driving') to:&lt;br /&gt;
&lt;br /&gt;
* drive the robot forward/backward&lt;br /&gt;
* steer the robot left/right&lt;br /&gt;
&lt;br /&gt;
The Ardumower wheel motor features:&lt;br /&gt;
* A rotation speed up to 31 rpm allows to move the robot at sufficient speed (at up to meter/sec = 31rpm/60 * PI * 0.25m  = 0.4m/sec using 250mm diameter wheels)&lt;br /&gt;
* A high torque (2.45Nm) guarantees that the robot can climb small hills as well (with 2 motors, 0.125 radius wheel, 31rpm = 0.4m/s, acceleration = 0.2 ( 1/2 of nomeinal speed) up to 14 degree) [http://www.robotshop.com/blog/en/drive-motor-sizing-tool-9698 see calculator]&lt;br /&gt;
* Integrated encoders, so it can measure the rotation speed, the distance and the direction (see [[Odometry]] for more information) - Encoders are REQUIRED for Ardumower software.&lt;br /&gt;
* 24V  (load current ~1A)&lt;br /&gt;
&lt;br /&gt;
= Motor driver =&lt;br /&gt;
A motor driver is a circuit that allows current to flow either one direction or the opposite direction through the motor - depending on wether the motor should turn forward or backward (so called 'H-bridge'). There are many motor drivers available as ready-circuit boards, some can even control two motors  (Dual H-Bridge) - if you connect two of their H-bridges in parallel, the maximum motor current can be increased.&lt;br /&gt;
&lt;br /&gt;
If the direction of the motor does not need to be controlled, (e.g. for the blades), you do not need an H-bridge, but instead a simple 'switch' (e.g. MOSFET-transistor-circuit).&lt;br /&gt;
&lt;br /&gt;
The motor driver is connected through control signals to the Arduino. Example:&lt;br /&gt;
&lt;br /&gt;
  Arduino Digital Pin  —&amp;gt;  MOTOR-Direction Pin (DIR)&lt;br /&gt;
  Arduino PWM Pin      —&amp;gt;  MOTOR-Speed Pin (PWM)&lt;br /&gt;
  Arduino Analog Pin   &amp;lt;—  MOTOR-Current Sensor Pin&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
One pin controls the direction (forward/backward), the other pin controls the speed. One analog input pin is connected to the current sensor. The current sensor module (ACS712-05A) is connected in series with the motor.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery&amp;gt;&lt;br /&gt;
File:Ardumower_motor_driver_circuit.png | NOTE: only for demonstration! See real [http://wiki.ardumower.de/index.php?title=Ardumower_PCB schematics] for concrete wiring&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== PWM frequency ==&lt;br /&gt;
The speed of the motor is controlled by a PWM duty signal. We use the Arduino default PWM frequency (490 Hz) to control the motor drivers.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery&amp;gt;&lt;br /&gt;
File: Arduino_pwm.png | Arduino PWM duty signal&lt;br /&gt;
File: Pwm_490hz.png | PWM 490 Hz: odometry ticks, sense (current) &lt;br /&gt;
File: Pwm_3khz.png | PWM 3.9 Khz: odometry ticks, sense (current) &lt;br /&gt;
File: Pwm_20khz.png | PWM 20 Khz: odometry ticks, sense (current) &lt;br /&gt;
File: Pwm_31khz.png | PWM 31 Khz: odometry ticks, sense (current) &lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Popular modules ==&lt;br /&gt;
=== MC33926 (recommended) ===&lt;br /&gt;
&lt;br /&gt;
Особенности: up to 3A with integrated current sensor and thermal shut-down protection, for all kind of robot mowers) &lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery&amp;gt;&lt;br /&gt;
File:Mc33926.jpg | pinout&lt;br /&gt;
File:Mc33926_example.jpg | jumpers&lt;br /&gt;
File:MC33926_schematics.jpg | schematics&lt;br /&gt;
File:Mc33926_current_limiter.jpg | automatic current limiter&lt;br /&gt;
File:Motor_pwm_50_percent_transients.jpg | Motor start 50% PWM transients&lt;br /&gt;
File:driver_hw_protection.png | Peak/EMF protection&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''&lt;br /&gt;
 M1_FB     --- pinMotorLeftSense A1&lt;br /&gt;
 M1_SF     --- pinMotorLeftFault 25&lt;br /&gt;
 M1_PWM_D1 --- connect with jumper to GND&lt;br /&gt;
 M1_PWM_D2 --- connect with jumper to VDD&lt;br /&gt;
 M1_IN1    --- pinMotorLeftPWM 5  &lt;br /&gt;
 M1_IN2    --- pinMotorLeftDir 31&lt;br /&gt;
 EN        --- pinMotorEnable  37&lt;br /&gt;
 M2_FB     --- pinMotorRightSense A0&lt;br /&gt;
 M2_SF     --- pinMotorRightFault 27&lt;br /&gt;
 M2_PWM_D1 --- connect with jumper to GND&lt;br /&gt;
 M2_PWM_D2 --- connect with jumper to VDD&lt;br /&gt;
 M2_IN1    --- pinMotorRightPWM  3 &lt;br /&gt;
 M2_IN2    --- pinMotorRightDir 33&lt;br /&gt;
 EN        --- pinMotorEnable  37&lt;br /&gt;
 VDD       --- Arduino 5V&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== BTS7960B ===&lt;br /&gt;
&amp;lt;gallery&amp;gt;&lt;br /&gt;
  File: BTS7960B_motor_driver.jpg | Модуль BTS7960B&lt;br /&gt;
  File: BTS7960B_motor_driver1.png | Модуль BTS7960B&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Особенности: 5.5-27V, 43A (цена 9 USD)&lt;br /&gt;
&lt;br /&gt;
=== L6201P ===&lt;br /&gt;
&amp;lt;gallery&amp;gt;&lt;br /&gt;
  File: L6201P_motor_driver.jpg | L6201P PCB&lt;br /&gt;
  File: L6201p.png | L6201P datasheet&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Особенности: 48V, 4A&lt;br /&gt;
&lt;br /&gt;
 B+     power supply output voltage equal to the power connector&lt;br /&gt;
 GND    GND&lt;br /&gt;
 EN     driver enable&lt;br /&gt;
 RPWM   forward PWM signal, active HIGH&lt;br /&gt;
 LPWM   reverse PWM signal, active HIGH&lt;br /&gt;
 CT     current signal output&lt;br /&gt;
 VT     voltage signal output&lt;br /&gt;
&lt;br /&gt;
 Forward   EN=1, RPWM=PWM, LPWM=0&lt;br /&gt;
 Reverse   EN=1, RPWM=0,   LPWM=PWM  (also possible?   EN=1, RPWM=255-PWM, LPWM=1  =&amp;gt; needs to be verified!)&lt;br /&gt;
 Brake     EN=1, RPWM=0,   LPWM=0&lt;br /&gt;
 Not brake EN=0, RPWM=x,   LPWM=x&lt;br /&gt;
 Note: 1=High level (3.3-5v), 0=Low level (0V or GND)&lt;br /&gt;
&lt;br /&gt;
=== L9958 ===&lt;br /&gt;
Особенности: Arduino 240W H-bridge Motor Driver Board - SX8847, up to 8A &lt;br /&gt;
&lt;br /&gt;
Note that this module has an on-board [http://en.wikipedia.org/wiki/78xx linear voltage regulator], which converts the input POWER (typically 24 or 12V) to 5V. Some modules do this with a single voltage regulator (chip VR1 on the module), or in a two-staged approach (VR1 and U2). &lt;br /&gt;
&lt;br /&gt;
Converting 24V to 5V with a linear voltage regulator is very inefficient (current in = current out, so if you need 100mA at 5V, the linear voltage regulator requires 100mA at 24V, so you loose 1.9W in this module). Therefore, it is recommended to disconnect the linear voltage regulator from the board, and use the 5V from the switched mode power supply. &lt;br /&gt;
&lt;br /&gt;
 L9958 GND---GND&lt;br /&gt;
 L9958 VCC---Arduino 5V&lt;br /&gt;
 L9958 EN---Arduino 5V&lt;br /&gt;
 L9958 DI---GND&lt;br /&gt;
 L9958 DIR---Arduino MOTOR_DIR&lt;br /&gt;
 L9958 PWM---Arduino MOTOR_PWM&lt;br /&gt;
 L9958 MOTOR(+)---motor(+)&lt;br /&gt;
 L9958 MOTOR(-)---motor(-)&lt;br /&gt;
 L9958 POWER(+)---battery(+)&lt;br /&gt;
 L9958 POWER(-)---battery(-)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery&amp;gt;&lt;br /&gt;
  File: Motor_driver_L9958.jpg&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== L298N ===&lt;br /&gt;
Особенности: up to 4A &lt;br /&gt;
Notice: When using a L298N-motor driver, both H-bridges (2A) should be connected in parallel, so that both bridges drive a single motor (max. 4A):&lt;br /&gt;
&lt;br /&gt;
Connect in parallel:&lt;br /&gt;
 IN1 with IN4&lt;br /&gt;
 IN2 with IN3&lt;br /&gt;
 OUT1 with OUT4&lt;br /&gt;
 OUT2 with OUT3&lt;br /&gt;
(Do NOT disconnect the SENSE-lines, except when you want to measure current by a 'shunt' resistor).&lt;br /&gt;
&lt;br /&gt;
Make sure there is a jumper on both ENA and ENB. Also, make sure there is a jumper on S1.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery&amp;gt;&lt;br /&gt;
File: Motordriver_l298n.JPG | driver &lt;br /&gt;
File: L298driver.jpg | double current&lt;br /&gt;
File: L298N_schematics.jpg | schematics&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= Mower motor and driver =&lt;br /&gt;
&amp;lt;gallery&amp;gt;&lt;br /&gt;
File: ardumower_mower_motor.jpg | Ardumower mower motor&lt;br /&gt;
File: Mower_motor_curve.png | Ardumower mower motor curve&lt;br /&gt;
File: Mower2_start_current.png | Mower start current&lt;br /&gt;
File: Mower4_blocked_500ms_detect_5s_wait.png | Mower blocked, 500ms detection (max), waittime: 5sec (min)&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
The Ardumower mower motor features:&lt;br /&gt;
* Fast enough to cut the lawn (3150 rpm)&lt;br /&gt;
* Enough torque (140 mNm / 46 W)&lt;br /&gt;
* Quiet mowing (you cannot hear it)&lt;br /&gt;
* 24V, load current ~1.0A  (L=2.8mH, R=1.9ohm)&lt;br /&gt;
&lt;br /&gt;
For a the mowing motor, a MOSFET circuit is used. The MOSFET transistor IRLIZ44N (alternatives: IRF1404, IRL540N, RFP30N06LE, FQP30N06L) can already switch a current of 30A at the Arduino 5V control signal (N-LogL). The 10K resistor pulls down to ground when the Arduino starts. The 180 Ohm resistor limits the current at the Gate caused by level switches to about 30mA. The diode (MBR1045) protects  the circuit against current caused by motor induction. A current sensor module (ACS712-30A) is connected in series with the motor.&lt;br /&gt;
&lt;br /&gt;
[[File:warning.png]]'''Security note: For security reasons, always remove mower blades in your first tests!'''&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery&amp;gt;&lt;br /&gt;
File: Ardumower_mower_motor_circuit.png | NOTE: only for demonstration! See real [http://wiki.ardumower.de/index.php?title=Ardumower_PCB schematics] for concrete wiring&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= Choosing a driver =&lt;br /&gt;
&lt;br /&gt;
When purchasing a motor driver, consider...&lt;br /&gt;
* max. thermal load (short-circuit current)&lt;br /&gt;
* price&lt;br /&gt;
&lt;br /&gt;
= Starting current =&lt;br /&gt;
Here are some measurements of the Ardumower motor's starting current (peak):&lt;br /&gt;
&lt;br /&gt;
Starting current:&lt;br /&gt;
* Gear motor: 15A (starting current peak)&lt;br /&gt;
* Mowing motor: 20A (starting current peak)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery&amp;gt;&lt;br /&gt;
File: Messung_einschalt_spitzen.jpg | Gear motor start current (peak)&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= Short-circuit current =&lt;br /&gt;
To not damage the motor driver on the first run, find out the maximum current that can flow through your motors. In other words, find out the 'short-circuit' current. Typical measurement installation:&lt;br /&gt;
&lt;br /&gt;
Battery === Ampere meter === Motor&lt;br /&gt;
&lt;br /&gt;
The Amperemeter (e.g. model making) should be able to measure the maximum current (e.g. 30A). The motor to be measured is mechanically blocked (so it cannot rotate).&lt;br /&gt;
&lt;br /&gt;
'''Warning'''&lt;br /&gt;
&lt;br /&gt;
* always remove blades&lt;br /&gt;
* only connect battery for a short period (1-5 seconds)&lt;br /&gt;
* always use cables with sufficient wire cross section&lt;br /&gt;
&lt;br /&gt;
Example measurement:&lt;br /&gt;
&lt;br /&gt;
* Rotenbach SPM08-320&lt;br /&gt;
** Wheel motor: 8A&lt;br /&gt;
** Mowing motor:&lt;br /&gt;
&lt;br /&gt;
* Ambrogio L50&lt;br /&gt;
** Wheel motor: 4,5A&lt;br /&gt;
** Mowing motor: 22A&lt;br /&gt;
&lt;br /&gt;
* Tianchen TC-G158&lt;br /&gt;
** Wheel motor: 5,4A&lt;br /&gt;
** Mowing motor: 16A (both 32A)&lt;br /&gt;
&lt;br /&gt;
The measured current will only flow in 'worst-case' scenarios, which means when the motor starts or when it is blocked and it will only flow for a short time  (as your battery might not deliver the high current constantly, and so current and voltage will break down).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Current sensor =&lt;br /&gt;
To detect certain conditions (robot drives against obstacle, motor blocks etc.), the motor current should be monitored constantly. There are two approaches for sensing current.&lt;br /&gt;
&lt;br /&gt;
== Approach &amp;quot;Hall sensor module&amp;quot; ==&lt;br /&gt;
This is the recommended approach for sensing current. These current sensor modules are available for different current ranges.&lt;br /&gt;
&lt;br /&gt;
* ACS712ELC-05A (185mV/A, max. 5A)&lt;br /&gt;
* ACS712ELC-20A (100mV/A, max. 20A)&lt;br /&gt;
* ACS712ELC-30A (66mV/A, max. 30A)&lt;br /&gt;
* The lower the range, the more precise the measurement.&lt;br /&gt;
&lt;br /&gt;
== Approach &amp;quot;Shunt resistor (circuit)&amp;quot; ==&lt;br /&gt;
The current flows across a very small resistor (0.5 Ohm) and the voltage drop is measured&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery&amp;gt;&lt;br /&gt;
File: L298n_module_circuit.jpg &lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=Further links=&lt;br /&gt;
#[http://www.ardumower.de/index.php/en/forum/maehwerk/74-10a-pwm-controller-modul-fuer-den-arduino 10A PWM controller module modification]&lt;/div&gt;</summary>
		<author><name>Unlogic</name></author>	</entry>

	<entry>
		<id>https://wiki.ardumower.de/index.php?title=Datei:BTS7960B_motor_driver1.jpg&amp;diff=2744</id>
		<title>Datei:BTS7960B motor driver1.jpg</title>
		<link rel="alternate" type="text/html" href="https://wiki.ardumower.de/index.php?title=Datei:BTS7960B_motor_driver1.jpg&amp;diff=2744"/>
				<updated>2015-08-30T12:28:17Z</updated>
		
		<summary type="html">&lt;p&gt;Unlogic: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Unlogic</name></author>	</entry>

	<entry>
		<id>https://wiki.ardumower.de/index.php?title=Datei:BTS7960B_motor_driver.jpg&amp;diff=2743</id>
		<title>Datei:BTS7960B motor driver.jpg</title>
		<link rel="alternate" type="text/html" href="https://wiki.ardumower.de/index.php?title=Datei:BTS7960B_motor_driver.jpg&amp;diff=2743"/>
				<updated>2015-08-30T12:27:55Z</updated>
		
		<summary type="html">&lt;p&gt;Unlogic: BTS7960B motor driver&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;BTS7960B motor driver&lt;/div&gt;</summary>
		<author><name>Unlogic</name></author>	</entry>

	<entry>
		<id>https://wiki.ardumower.de/index.php?title=Motor_driver_ru&amp;diff=2742</id>
		<title>Motor driver ru</title>
		<link rel="alternate" type="text/html" href="https://wiki.ardumower.de/index.php?title=Motor_driver_ru&amp;diff=2742"/>
				<updated>2015-08-30T12:26:53Z</updated>
		
		<summary type="html">&lt;p&gt;Unlogic: /* BTS7960B */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Описание =&lt;br /&gt;
Ardumower's design uses two different types of motors (all motors can be purchased via the [https://www.marotronics.de/index.php?k=7 shop] [[File: shopping.png|link=https://www.marotronics.de/index.php?k=7]]):&lt;br /&gt;
* Two motors (with integrated gearing) for driving (wheel motors), and encoder (for distance, direction and speed control)&lt;br /&gt;
* One motor (with high rotation speed) for mowing (mower motor)&lt;br /&gt;
&lt;br /&gt;
To control a motor, it requires a 'motor driver'.&lt;br /&gt;
&lt;br /&gt;
= Voltages =&lt;br /&gt;
Although there exist 12V motors and 24V motors, as in all modern systems, the Ardumower uses 24V motors. The reason is as follows:&lt;br /&gt;
&lt;br /&gt;
Assuming that the motor consumes 50W, using 24V results to a motor current: 50W / 24V = 2A.&lt;br /&gt;
&lt;br /&gt;
Assuming that the motor consumes 50W, using 12V results to a motor current: 50W / 12V = 4A.&lt;br /&gt;
&lt;br /&gt;
The higher the current (A), the more problems arise:&lt;br /&gt;
&lt;br /&gt;
* The motor driver must be suitable for higher current (more expensive)&lt;br /&gt;
* The PCB traces need to be more thick (more expensive)&lt;br /&gt;
* The rechargable battery need to support higher current (more expensive)&lt;br /&gt;
&lt;br /&gt;
So, that's the reason why Ardumower is designed as a 24V system.&lt;br /&gt;
&lt;br /&gt;
= Wheel motors =&lt;br /&gt;
&amp;lt;gallery&amp;gt;&lt;br /&gt;
  File: ardumower_motor.jpg | Ardumower gear motor with encoder (8mm diameter, 5900 rpm motor, 0.055 Nm, gear ratio 1/212, output torque 2.45Nm, output rpm 31)&lt;br /&gt;
  File: wheel_motor_diagram.png | Ardumower gear motor curve (motor only)&lt;br /&gt;
  File:decrease_motor_noise.png | Decrease motor noise&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
The two left and right gear motors are controlled independently (aka 'differential driving') to:&lt;br /&gt;
&lt;br /&gt;
* drive the robot forward/backward&lt;br /&gt;
* steer the robot left/right&lt;br /&gt;
&lt;br /&gt;
The Ardumower wheel motor features:&lt;br /&gt;
* A rotation speed up to 31 rpm allows to move the robot at sufficient speed (at up to meter/sec = 31rpm/60 * PI * 0.25m  = 0.4m/sec using 250mm diameter wheels)&lt;br /&gt;
* A high torque (2.45Nm) guarantees that the robot can climb small hills as well (with 2 motors, 0.125 radius wheel, 31rpm = 0.4m/s, acceleration = 0.2 ( 1/2 of nomeinal speed) up to 14 degree) [http://www.robotshop.com/blog/en/drive-motor-sizing-tool-9698 see calculator]&lt;br /&gt;
* Integrated encoders, so it can measure the rotation speed, the distance and the direction (see [[Odometry]] for more information) - Encoders are REQUIRED for Ardumower software.&lt;br /&gt;
* 24V  (load current ~1A)&lt;br /&gt;
&lt;br /&gt;
= Motor driver =&lt;br /&gt;
A motor driver is a circuit that allows current to flow either one direction or the opposite direction through the motor - depending on wether the motor should turn forward or backward (so called 'H-bridge'). There are many motor drivers available as ready-circuit boards, some can even control two motors  (Dual H-Bridge) - if you connect two of their H-bridges in parallel, the maximum motor current can be increased.&lt;br /&gt;
&lt;br /&gt;
If the direction of the motor does not need to be controlled, (e.g. for the blades), you do not need an H-bridge, but instead a simple 'switch' (e.g. MOSFET-transistor-circuit).&lt;br /&gt;
&lt;br /&gt;
The motor driver is connected through control signals to the Arduino. Example:&lt;br /&gt;
&lt;br /&gt;
  Arduino Digital Pin  —&amp;gt;  MOTOR-Direction Pin (DIR)&lt;br /&gt;
  Arduino PWM Pin      —&amp;gt;  MOTOR-Speed Pin (PWM)&lt;br /&gt;
  Arduino Analog Pin   &amp;lt;—  MOTOR-Current Sensor Pin&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
One pin controls the direction (forward/backward), the other pin controls the speed. One analog input pin is connected to the current sensor. The current sensor module (ACS712-05A) is connected in series with the motor.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery&amp;gt;&lt;br /&gt;
File:Ardumower_motor_driver_circuit.png | NOTE: only for demonstration! See real [http://wiki.ardumower.de/index.php?title=Ardumower_PCB schematics] for concrete wiring&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== PWM frequency ==&lt;br /&gt;
The speed of the motor is controlled by a PWM duty signal. We use the Arduino default PWM frequency (490 Hz) to control the motor drivers.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery&amp;gt;&lt;br /&gt;
File: Arduino_pwm.png | Arduino PWM duty signal&lt;br /&gt;
File: Pwm_490hz.png | PWM 490 Hz: odometry ticks, sense (current) &lt;br /&gt;
File: Pwm_3khz.png | PWM 3.9 Khz: odometry ticks, sense (current) &lt;br /&gt;
File: Pwm_20khz.png | PWM 20 Khz: odometry ticks, sense (current) &lt;br /&gt;
File: Pwm_31khz.png | PWM 31 Khz: odometry ticks, sense (current) &lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Popular modules ==&lt;br /&gt;
=== MC33926 (recommended) ===&lt;br /&gt;
&lt;br /&gt;
Особенности: up to 3A with integrated current sensor and thermal shut-down protection, for all kind of robot mowers) &lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery&amp;gt;&lt;br /&gt;
File:Mc33926.jpg | pinout&lt;br /&gt;
File:Mc33926_example.jpg | jumpers&lt;br /&gt;
File:MC33926_schematics.jpg | schematics&lt;br /&gt;
File:Mc33926_current_limiter.jpg | automatic current limiter&lt;br /&gt;
File:Motor_pwm_50_percent_transients.jpg | Motor start 50% PWM transients&lt;br /&gt;
File:driver_hw_protection.png | Peak/EMF protection&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''&lt;br /&gt;
 M1_FB     --- pinMotorLeftSense A1&lt;br /&gt;
 M1_SF     --- pinMotorLeftFault 25&lt;br /&gt;
 M1_PWM_D1 --- connect with jumper to GND&lt;br /&gt;
 M1_PWM_D2 --- connect with jumper to VDD&lt;br /&gt;
 M1_IN1    --- pinMotorLeftPWM 5  &lt;br /&gt;
 M1_IN2    --- pinMotorLeftDir 31&lt;br /&gt;
 EN        --- pinMotorEnable  37&lt;br /&gt;
 M2_FB     --- pinMotorRightSense A0&lt;br /&gt;
 M2_SF     --- pinMotorRightFault 27&lt;br /&gt;
 M2_PWM_D1 --- connect with jumper to GND&lt;br /&gt;
 M2_PWM_D2 --- connect with jumper to VDD&lt;br /&gt;
 M2_IN1    --- pinMotorRightPWM  3 &lt;br /&gt;
 M2_IN2    --- pinMotorRightDir 33&lt;br /&gt;
 EN        --- pinMotorEnable  37&lt;br /&gt;
 VDD       --- Arduino 5V&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== BTS7960B ===&lt;br /&gt;
&amp;lt;gallery&amp;gt;&lt;br /&gt;
  File: BTS7960B_motor_driver.jpg | Модуль BTS7960B&lt;br /&gt;
  File: L6201p.png | L6201P datasheet&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Особенности: 5.5-27V, 43A (цена 9 USD)&lt;br /&gt;
&lt;br /&gt;
=== L6201P ===&lt;br /&gt;
&amp;lt;gallery&amp;gt;&lt;br /&gt;
  File: L6201P_motor_driver.jpg | L6201P PCB&lt;br /&gt;
  File: L6201p.png | L6201P datasheet&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Особенности: 48V, 4A&lt;br /&gt;
&lt;br /&gt;
 B+     power supply output voltage equal to the power connector&lt;br /&gt;
 GND    GND&lt;br /&gt;
 EN     driver enable&lt;br /&gt;
 RPWM   forward PWM signal, active HIGH&lt;br /&gt;
 LPWM   reverse PWM signal, active HIGH&lt;br /&gt;
 CT     current signal output&lt;br /&gt;
 VT     voltage signal output&lt;br /&gt;
&lt;br /&gt;
 Forward   EN=1, RPWM=PWM, LPWM=0&lt;br /&gt;
 Reverse   EN=1, RPWM=0,   LPWM=PWM  (also possible?   EN=1, RPWM=255-PWM, LPWM=1  =&amp;gt; needs to be verified!)&lt;br /&gt;
 Brake     EN=1, RPWM=0,   LPWM=0&lt;br /&gt;
 Not brake EN=0, RPWM=x,   LPWM=x&lt;br /&gt;
 Note: 1=High level (3.3-5v), 0=Low level (0V or GND)&lt;br /&gt;
&lt;br /&gt;
=== L9958 ===&lt;br /&gt;
Особенности: Arduino 240W H-bridge Motor Driver Board - SX8847, up to 8A &lt;br /&gt;
&lt;br /&gt;
Note that this module has an on-board [http://en.wikipedia.org/wiki/78xx linear voltage regulator], which converts the input POWER (typically 24 or 12V) to 5V. Some modules do this with a single voltage regulator (chip VR1 on the module), or in a two-staged approach (VR1 and U2). &lt;br /&gt;
&lt;br /&gt;
Converting 24V to 5V with a linear voltage regulator is very inefficient (current in = current out, so if you need 100mA at 5V, the linear voltage regulator requires 100mA at 24V, so you loose 1.9W in this module). Therefore, it is recommended to disconnect the linear voltage regulator from the board, and use the 5V from the switched mode power supply. &lt;br /&gt;
&lt;br /&gt;
 L9958 GND---GND&lt;br /&gt;
 L9958 VCC---Arduino 5V&lt;br /&gt;
 L9958 EN---Arduino 5V&lt;br /&gt;
 L9958 DI---GND&lt;br /&gt;
 L9958 DIR---Arduino MOTOR_DIR&lt;br /&gt;
 L9958 PWM---Arduino MOTOR_PWM&lt;br /&gt;
 L9958 MOTOR(+)---motor(+)&lt;br /&gt;
 L9958 MOTOR(-)---motor(-)&lt;br /&gt;
 L9958 POWER(+)---battery(+)&lt;br /&gt;
 L9958 POWER(-)---battery(-)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery&amp;gt;&lt;br /&gt;
  File: Motor_driver_L9958.jpg&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== L298N ===&lt;br /&gt;
Особенности: up to 4A &lt;br /&gt;
Notice: When using a L298N-motor driver, both H-bridges (2A) should be connected in parallel, so that both bridges drive a single motor (max. 4A):&lt;br /&gt;
&lt;br /&gt;
Connect in parallel:&lt;br /&gt;
 IN1 with IN4&lt;br /&gt;
 IN2 with IN3&lt;br /&gt;
 OUT1 with OUT4&lt;br /&gt;
 OUT2 with OUT3&lt;br /&gt;
(Do NOT disconnect the SENSE-lines, except when you want to measure current by a 'shunt' resistor).&lt;br /&gt;
&lt;br /&gt;
Make sure there is a jumper on both ENA and ENB. Also, make sure there is a jumper on S1.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery&amp;gt;&lt;br /&gt;
File: Motordriver_l298n.JPG | driver &lt;br /&gt;
File: L298driver.jpg | double current&lt;br /&gt;
File: L298N_schematics.jpg | schematics&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= Mower motor and driver =&lt;br /&gt;
&amp;lt;gallery&amp;gt;&lt;br /&gt;
File: ardumower_mower_motor.jpg | Ardumower mower motor&lt;br /&gt;
File: Mower_motor_curve.png | Ardumower mower motor curve&lt;br /&gt;
File: Mower2_start_current.png | Mower start current&lt;br /&gt;
File: Mower4_blocked_500ms_detect_5s_wait.png | Mower blocked, 500ms detection (max), waittime: 5sec (min)&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
The Ardumower mower motor features:&lt;br /&gt;
* Fast enough to cut the lawn (3150 rpm)&lt;br /&gt;
* Enough torque (140 mNm / 46 W)&lt;br /&gt;
* Quiet mowing (you cannot hear it)&lt;br /&gt;
* 24V, load current ~1.0A  (L=2.8mH, R=1.9ohm)&lt;br /&gt;
&lt;br /&gt;
For a the mowing motor, a MOSFET circuit is used. The MOSFET transistor IRLIZ44N (alternatives: IRF1404, IRL540N, RFP30N06LE, FQP30N06L) can already switch a current of 30A at the Arduino 5V control signal (N-LogL). The 10K resistor pulls down to ground when the Arduino starts. The 180 Ohm resistor limits the current at the Gate caused by level switches to about 30mA. The diode (MBR1045) protects  the circuit against current caused by motor induction. A current sensor module (ACS712-30A) is connected in series with the motor.&lt;br /&gt;
&lt;br /&gt;
[[File:warning.png]]'''Security note: For security reasons, always remove mower blades in your first tests!'''&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery&amp;gt;&lt;br /&gt;
File: Ardumower_mower_motor_circuit.png | NOTE: only for demonstration! See real [http://wiki.ardumower.de/index.php?title=Ardumower_PCB schematics] for concrete wiring&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= Choosing a driver =&lt;br /&gt;
&lt;br /&gt;
When purchasing a motor driver, consider...&lt;br /&gt;
* max. thermal load (short-circuit current)&lt;br /&gt;
* price&lt;br /&gt;
&lt;br /&gt;
= Starting current =&lt;br /&gt;
Here are some measurements of the Ardumower motor's starting current (peak):&lt;br /&gt;
&lt;br /&gt;
Starting current:&lt;br /&gt;
* Gear motor: 15A (starting current peak)&lt;br /&gt;
* Mowing motor: 20A (starting current peak)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery&amp;gt;&lt;br /&gt;
File: Messung_einschalt_spitzen.jpg | Gear motor start current (peak)&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= Short-circuit current =&lt;br /&gt;
To not damage the motor driver on the first run, find out the maximum current that can flow through your motors. In other words, find out the 'short-circuit' current. Typical measurement installation:&lt;br /&gt;
&lt;br /&gt;
Battery === Ampere meter === Motor&lt;br /&gt;
&lt;br /&gt;
The Amperemeter (e.g. model making) should be able to measure the maximum current (e.g. 30A). The motor to be measured is mechanically blocked (so it cannot rotate).&lt;br /&gt;
&lt;br /&gt;
'''Warning'''&lt;br /&gt;
&lt;br /&gt;
* always remove blades&lt;br /&gt;
* only connect battery for a short period (1-5 seconds)&lt;br /&gt;
* always use cables with sufficient wire cross section&lt;br /&gt;
&lt;br /&gt;
Example measurement:&lt;br /&gt;
&lt;br /&gt;
* Rotenbach SPM08-320&lt;br /&gt;
** Wheel motor: 8A&lt;br /&gt;
** Mowing motor:&lt;br /&gt;
&lt;br /&gt;
* Ambrogio L50&lt;br /&gt;
** Wheel motor: 4,5A&lt;br /&gt;
** Mowing motor: 22A&lt;br /&gt;
&lt;br /&gt;
* Tianchen TC-G158&lt;br /&gt;
** Wheel motor: 5,4A&lt;br /&gt;
** Mowing motor: 16A (both 32A)&lt;br /&gt;
&lt;br /&gt;
The measured current will only flow in 'worst-case' scenarios, which means when the motor starts or when it is blocked and it will only flow for a short time  (as your battery might not deliver the high current constantly, and so current and voltage will break down).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Current sensor =&lt;br /&gt;
To detect certain conditions (robot drives against obstacle, motor blocks etc.), the motor current should be monitored constantly. There are two approaches for sensing current.&lt;br /&gt;
&lt;br /&gt;
== Approach &amp;quot;Hall sensor module&amp;quot; ==&lt;br /&gt;
This is the recommended approach for sensing current. These current sensor modules are available for different current ranges.&lt;br /&gt;
&lt;br /&gt;
* ACS712ELC-05A (185mV/A, max. 5A)&lt;br /&gt;
* ACS712ELC-20A (100mV/A, max. 20A)&lt;br /&gt;
* ACS712ELC-30A (66mV/A, max. 30A)&lt;br /&gt;
* The lower the range, the more precise the measurement.&lt;br /&gt;
&lt;br /&gt;
== Approach &amp;quot;Shunt resistor (circuit)&amp;quot; ==&lt;br /&gt;
The current flows across a very small resistor (0.5 Ohm) and the voltage drop is measured&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery&amp;gt;&lt;br /&gt;
File: L298n_module_circuit.jpg &lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=Further links=&lt;br /&gt;
#[http://www.ardumower.de/index.php/en/forum/maehwerk/74-10a-pwm-controller-modul-fuer-den-arduino 10A PWM controller module modification]&lt;/div&gt;</summary>
		<author><name>Unlogic</name></author>	</entry>

	<entry>
		<id>https://wiki.ardumower.de/index.php?title=Motor_driver_ru&amp;diff=2741</id>
		<title>Motor driver ru</title>
		<link rel="alternate" type="text/html" href="https://wiki.ardumower.de/index.php?title=Motor_driver_ru&amp;diff=2741"/>
				<updated>2015-08-30T12:23:40Z</updated>
		
		<summary type="html">&lt;p&gt;Unlogic: /* Popular modules */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Описание =&lt;br /&gt;
Ardumower's design uses two different types of motors (all motors can be purchased via the [https://www.marotronics.de/index.php?k=7 shop] [[File: shopping.png|link=https://www.marotronics.de/index.php?k=7]]):&lt;br /&gt;
* Two motors (with integrated gearing) for driving (wheel motors), and encoder (for distance, direction and speed control)&lt;br /&gt;
* One motor (with high rotation speed) for mowing (mower motor)&lt;br /&gt;
&lt;br /&gt;
To control a motor, it requires a 'motor driver'.&lt;br /&gt;
&lt;br /&gt;
= Voltages =&lt;br /&gt;
Although there exist 12V motors and 24V motors, as in all modern systems, the Ardumower uses 24V motors. The reason is as follows:&lt;br /&gt;
&lt;br /&gt;
Assuming that the motor consumes 50W, using 24V results to a motor current: 50W / 24V = 2A.&lt;br /&gt;
&lt;br /&gt;
Assuming that the motor consumes 50W, using 12V results to a motor current: 50W / 12V = 4A.&lt;br /&gt;
&lt;br /&gt;
The higher the current (A), the more problems arise:&lt;br /&gt;
&lt;br /&gt;
* The motor driver must be suitable for higher current (more expensive)&lt;br /&gt;
* The PCB traces need to be more thick (more expensive)&lt;br /&gt;
* The rechargable battery need to support higher current (more expensive)&lt;br /&gt;
&lt;br /&gt;
So, that's the reason why Ardumower is designed as a 24V system.&lt;br /&gt;
&lt;br /&gt;
= Wheel motors =&lt;br /&gt;
&amp;lt;gallery&amp;gt;&lt;br /&gt;
  File: ardumower_motor.jpg | Ardumower gear motor with encoder (8mm diameter, 5900 rpm motor, 0.055 Nm, gear ratio 1/212, output torque 2.45Nm, output rpm 31)&lt;br /&gt;
  File: wheel_motor_diagram.png | Ardumower gear motor curve (motor only)&lt;br /&gt;
  File:decrease_motor_noise.png | Decrease motor noise&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
The two left and right gear motors are controlled independently (aka 'differential driving') to:&lt;br /&gt;
&lt;br /&gt;
* drive the robot forward/backward&lt;br /&gt;
* steer the robot left/right&lt;br /&gt;
&lt;br /&gt;
The Ardumower wheel motor features:&lt;br /&gt;
* A rotation speed up to 31 rpm allows to move the robot at sufficient speed (at up to meter/sec = 31rpm/60 * PI * 0.25m  = 0.4m/sec using 250mm diameter wheels)&lt;br /&gt;
* A high torque (2.45Nm) guarantees that the robot can climb small hills as well (with 2 motors, 0.125 radius wheel, 31rpm = 0.4m/s, acceleration = 0.2 ( 1/2 of nomeinal speed) up to 14 degree) [http://www.robotshop.com/blog/en/drive-motor-sizing-tool-9698 see calculator]&lt;br /&gt;
* Integrated encoders, so it can measure the rotation speed, the distance and the direction (see [[Odometry]] for more information) - Encoders are REQUIRED for Ardumower software.&lt;br /&gt;
* 24V  (load current ~1A)&lt;br /&gt;
&lt;br /&gt;
= Motor driver =&lt;br /&gt;
A motor driver is a circuit that allows current to flow either one direction or the opposite direction through the motor - depending on wether the motor should turn forward or backward (so called 'H-bridge'). There are many motor drivers available as ready-circuit boards, some can even control two motors  (Dual H-Bridge) - if you connect two of their H-bridges in parallel, the maximum motor current can be increased.&lt;br /&gt;
&lt;br /&gt;
If the direction of the motor does not need to be controlled, (e.g. for the blades), you do not need an H-bridge, but instead a simple 'switch' (e.g. MOSFET-transistor-circuit).&lt;br /&gt;
&lt;br /&gt;
The motor driver is connected through control signals to the Arduino. Example:&lt;br /&gt;
&lt;br /&gt;
  Arduino Digital Pin  —&amp;gt;  MOTOR-Direction Pin (DIR)&lt;br /&gt;
  Arduino PWM Pin      —&amp;gt;  MOTOR-Speed Pin (PWM)&lt;br /&gt;
  Arduino Analog Pin   &amp;lt;—  MOTOR-Current Sensor Pin&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
One pin controls the direction (forward/backward), the other pin controls the speed. One analog input pin is connected to the current sensor. The current sensor module (ACS712-05A) is connected in series with the motor.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery&amp;gt;&lt;br /&gt;
File:Ardumower_motor_driver_circuit.png | NOTE: only for demonstration! See real [http://wiki.ardumower.de/index.php?title=Ardumower_PCB schematics] for concrete wiring&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== PWM frequency ==&lt;br /&gt;
The speed of the motor is controlled by a PWM duty signal. We use the Arduino default PWM frequency (490 Hz) to control the motor drivers.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery&amp;gt;&lt;br /&gt;
File: Arduino_pwm.png | Arduino PWM duty signal&lt;br /&gt;
File: Pwm_490hz.png | PWM 490 Hz: odometry ticks, sense (current) &lt;br /&gt;
File: Pwm_3khz.png | PWM 3.9 Khz: odometry ticks, sense (current) &lt;br /&gt;
File: Pwm_20khz.png | PWM 20 Khz: odometry ticks, sense (current) &lt;br /&gt;
File: Pwm_31khz.png | PWM 31 Khz: odometry ticks, sense (current) &lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Popular modules ==&lt;br /&gt;
=== MC33926 (recommended) ===&lt;br /&gt;
&lt;br /&gt;
Особенности: up to 3A with integrated current sensor and thermal shut-down protection, for all kind of robot mowers) &lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery&amp;gt;&lt;br /&gt;
File:Mc33926.jpg | pinout&lt;br /&gt;
File:Mc33926_example.jpg | jumpers&lt;br /&gt;
File:MC33926_schematics.jpg | schematics&lt;br /&gt;
File:Mc33926_current_limiter.jpg | automatic current limiter&lt;br /&gt;
File:Motor_pwm_50_percent_transients.jpg | Motor start 50% PWM transients&lt;br /&gt;
File:driver_hw_protection.png | Peak/EMF protection&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''&lt;br /&gt;
 M1_FB     --- pinMotorLeftSense A1&lt;br /&gt;
 M1_SF     --- pinMotorLeftFault 25&lt;br /&gt;
 M1_PWM_D1 --- connect with jumper to GND&lt;br /&gt;
 M1_PWM_D2 --- connect with jumper to VDD&lt;br /&gt;
 M1_IN1    --- pinMotorLeftPWM 5  &lt;br /&gt;
 M1_IN2    --- pinMotorLeftDir 31&lt;br /&gt;
 EN        --- pinMotorEnable  37&lt;br /&gt;
 M2_FB     --- pinMotorRightSense A0&lt;br /&gt;
 M2_SF     --- pinMotorRightFault 27&lt;br /&gt;
 M2_PWM_D1 --- connect with jumper to GND&lt;br /&gt;
 M2_PWM_D2 --- connect with jumper to VDD&lt;br /&gt;
 M2_IN1    --- pinMotorRightPWM  3 &lt;br /&gt;
 M2_IN2    --- pinMotorRightDir 33&lt;br /&gt;
 EN        --- pinMotorEnable  37&lt;br /&gt;
 VDD       --- Arduino 5V&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== BTS7960B===&lt;br /&gt;
&amp;lt;gallery&amp;gt;&lt;br /&gt;
  File: L6201P_motor_driver.jpg | L6201P PCB&lt;br /&gt;
  File: L6201p.png | L6201P datasheet&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Особенности: 5.5-27V, 43A (цена 9 USD)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== L6201P ===&lt;br /&gt;
&amp;lt;gallery&amp;gt;&lt;br /&gt;
  File: L6201P_motor_driver.jpg | L6201P PCB&lt;br /&gt;
  File: L6201p.png | L6201P datasheet&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Особенности: 48V, 4A&lt;br /&gt;
&lt;br /&gt;
 B+     power supply output voltage equal to the power connector&lt;br /&gt;
 GND    GND&lt;br /&gt;
 EN     driver enable&lt;br /&gt;
 RPWM   forward PWM signal, active HIGH&lt;br /&gt;
 LPWM   reverse PWM signal, active HIGH&lt;br /&gt;
 CT     current signal output&lt;br /&gt;
 VT     voltage signal output&lt;br /&gt;
&lt;br /&gt;
 Forward   EN=1, RPWM=PWM, LPWM=0&lt;br /&gt;
 Reverse   EN=1, RPWM=0,   LPWM=PWM  (also possible?   EN=1, RPWM=255-PWM, LPWM=1  =&amp;gt; needs to be verified!)&lt;br /&gt;
 Brake     EN=1, RPWM=0,   LPWM=0&lt;br /&gt;
 Not brake EN=0, RPWM=x,   LPWM=x&lt;br /&gt;
 Note: 1=High level (3.3-5v), 0=Low level (0V or GND)&lt;br /&gt;
&lt;br /&gt;
=== L9958 ===&lt;br /&gt;
Особенности: Arduino 240W H-bridge Motor Driver Board - SX8847, up to 8A &lt;br /&gt;
&lt;br /&gt;
Note that this module has an on-board [http://en.wikipedia.org/wiki/78xx linear voltage regulator], which converts the input POWER (typically 24 or 12V) to 5V. Some modules do this with a single voltage regulator (chip VR1 on the module), or in a two-staged approach (VR1 and U2). &lt;br /&gt;
&lt;br /&gt;
Converting 24V to 5V with a linear voltage regulator is very inefficient (current in = current out, so if you need 100mA at 5V, the linear voltage regulator requires 100mA at 24V, so you loose 1.9W in this module). Therefore, it is recommended to disconnect the linear voltage regulator from the board, and use the 5V from the switched mode power supply. &lt;br /&gt;
&lt;br /&gt;
 L9958 GND---GND&lt;br /&gt;
 L9958 VCC---Arduino 5V&lt;br /&gt;
 L9958 EN---Arduino 5V&lt;br /&gt;
 L9958 DI---GND&lt;br /&gt;
 L9958 DIR---Arduino MOTOR_DIR&lt;br /&gt;
 L9958 PWM---Arduino MOTOR_PWM&lt;br /&gt;
 L9958 MOTOR(+)---motor(+)&lt;br /&gt;
 L9958 MOTOR(-)---motor(-)&lt;br /&gt;
 L9958 POWER(+)---battery(+)&lt;br /&gt;
 L9958 POWER(-)---battery(-)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery&amp;gt;&lt;br /&gt;
  File: Motor_driver_L9958.jpg&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== L298N ===&lt;br /&gt;
Особенности: up to 4A &lt;br /&gt;
Notice: When using a L298N-motor driver, both H-bridges (2A) should be connected in parallel, so that both bridges drive a single motor (max. 4A):&lt;br /&gt;
&lt;br /&gt;
Connect in parallel:&lt;br /&gt;
 IN1 with IN4&lt;br /&gt;
 IN2 with IN3&lt;br /&gt;
 OUT1 with OUT4&lt;br /&gt;
 OUT2 with OUT3&lt;br /&gt;
(Do NOT disconnect the SENSE-lines, except when you want to measure current by a 'shunt' resistor).&lt;br /&gt;
&lt;br /&gt;
Make sure there is a jumper on both ENA and ENB. Also, make sure there is a jumper on S1.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery&amp;gt;&lt;br /&gt;
File: Motordriver_l298n.JPG | driver &lt;br /&gt;
File: L298driver.jpg | double current&lt;br /&gt;
File: L298N_schematics.jpg | schematics&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= Mower motor and driver =&lt;br /&gt;
&amp;lt;gallery&amp;gt;&lt;br /&gt;
File: ardumower_mower_motor.jpg | Ardumower mower motor&lt;br /&gt;
File: Mower_motor_curve.png | Ardumower mower motor curve&lt;br /&gt;
File: Mower2_start_current.png | Mower start current&lt;br /&gt;
File: Mower4_blocked_500ms_detect_5s_wait.png | Mower blocked, 500ms detection (max), waittime: 5sec (min)&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
The Ardumower mower motor features:&lt;br /&gt;
* Fast enough to cut the lawn (3150 rpm)&lt;br /&gt;
* Enough torque (140 mNm / 46 W)&lt;br /&gt;
* Quiet mowing (you cannot hear it)&lt;br /&gt;
* 24V, load current ~1.0A  (L=2.8mH, R=1.9ohm)&lt;br /&gt;
&lt;br /&gt;
For a the mowing motor, a MOSFET circuit is used. The MOSFET transistor IRLIZ44N (alternatives: IRF1404, IRL540N, RFP30N06LE, FQP30N06L) can already switch a current of 30A at the Arduino 5V control signal (N-LogL). The 10K resistor pulls down to ground when the Arduino starts. The 180 Ohm resistor limits the current at the Gate caused by level switches to about 30mA. The diode (MBR1045) protects  the circuit against current caused by motor induction. A current sensor module (ACS712-30A) is connected in series with the motor.&lt;br /&gt;
&lt;br /&gt;
[[File:warning.png]]'''Security note: For security reasons, always remove mower blades in your first tests!'''&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery&amp;gt;&lt;br /&gt;
File: Ardumower_mower_motor_circuit.png | NOTE: only for demonstration! See real [http://wiki.ardumower.de/index.php?title=Ardumower_PCB schematics] for concrete wiring&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= Choosing a driver =&lt;br /&gt;
&lt;br /&gt;
When purchasing a motor driver, consider...&lt;br /&gt;
* max. thermal load (short-circuit current)&lt;br /&gt;
* price&lt;br /&gt;
&lt;br /&gt;
= Starting current =&lt;br /&gt;
Here are some measurements of the Ardumower motor's starting current (peak):&lt;br /&gt;
&lt;br /&gt;
Starting current:&lt;br /&gt;
* Gear motor: 15A (starting current peak)&lt;br /&gt;
* Mowing motor: 20A (starting current peak)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery&amp;gt;&lt;br /&gt;
File: Messung_einschalt_spitzen.jpg | Gear motor start current (peak)&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= Short-circuit current =&lt;br /&gt;
To not damage the motor driver on the first run, find out the maximum current that can flow through your motors. In other words, find out the 'short-circuit' current. Typical measurement installation:&lt;br /&gt;
&lt;br /&gt;
Battery === Ampere meter === Motor&lt;br /&gt;
&lt;br /&gt;
The Amperemeter (e.g. model making) should be able to measure the maximum current (e.g. 30A). The motor to be measured is mechanically blocked (so it cannot rotate).&lt;br /&gt;
&lt;br /&gt;
'''Warning'''&lt;br /&gt;
&lt;br /&gt;
* always remove blades&lt;br /&gt;
* only connect battery for a short period (1-5 seconds)&lt;br /&gt;
* always use cables with sufficient wire cross section&lt;br /&gt;
&lt;br /&gt;
Example measurement:&lt;br /&gt;
&lt;br /&gt;
* Rotenbach SPM08-320&lt;br /&gt;
** Wheel motor: 8A&lt;br /&gt;
** Mowing motor:&lt;br /&gt;
&lt;br /&gt;
* Ambrogio L50&lt;br /&gt;
** Wheel motor: 4,5A&lt;br /&gt;
** Mowing motor: 22A&lt;br /&gt;
&lt;br /&gt;
* Tianchen TC-G158&lt;br /&gt;
** Wheel motor: 5,4A&lt;br /&gt;
** Mowing motor: 16A (both 32A)&lt;br /&gt;
&lt;br /&gt;
The measured current will only flow in 'worst-case' scenarios, which means when the motor starts or when it is blocked and it will only flow for a short time  (as your battery might not deliver the high current constantly, and so current and voltage will break down).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Current sensor =&lt;br /&gt;
To detect certain conditions (robot drives against obstacle, motor blocks etc.), the motor current should be monitored constantly. There are two approaches for sensing current.&lt;br /&gt;
&lt;br /&gt;
== Approach &amp;quot;Hall sensor module&amp;quot; ==&lt;br /&gt;
This is the recommended approach for sensing current. These current sensor modules are available for different current ranges.&lt;br /&gt;
&lt;br /&gt;
* ACS712ELC-05A (185mV/A, max. 5A)&lt;br /&gt;
* ACS712ELC-20A (100mV/A, max. 20A)&lt;br /&gt;
* ACS712ELC-30A (66mV/A, max. 30A)&lt;br /&gt;
* The lower the range, the more precise the measurement.&lt;br /&gt;
&lt;br /&gt;
== Approach &amp;quot;Shunt resistor (circuit)&amp;quot; ==&lt;br /&gt;
The current flows across a very small resistor (0.5 Ohm) and the voltage drop is measured&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery&amp;gt;&lt;br /&gt;
File: L298n_module_circuit.jpg &lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=Further links=&lt;br /&gt;
#[http://www.ardumower.de/index.php/en/forum/maehwerk/74-10a-pwm-controller-modul-fuer-den-arduino 10A PWM controller module modification]&lt;/div&gt;</summary>
		<author><name>Unlogic</name></author>	</entry>

	<entry>
		<id>https://wiki.ardumower.de/index.php?title=Dropsensor_ru&amp;diff=2734</id>
		<title>Dropsensor ru</title>
		<link rel="alternate" type="text/html" href="https://wiki.ardumower.de/index.php?title=Dropsensor_ru&amp;diff=2734"/>
				<updated>2015-08-28T08:44:15Z</updated>
		
		<summary type="html">&lt;p&gt;Unlogic: /* Датчик падения */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
= Датчик падения =&lt;br /&gt;
&lt;br /&gt;
=='''Funktion:'''==&lt;br /&gt;
&lt;br /&gt;
Der Arduino Dropsensor oder auch Absturzsensor ist dafür gedacht den Mover vor abstürzen vor Treppenabsätzen oder ähnlichen zu schützen. Ebenso kann dieser eingesetzt werden um Inseln von Bäumen und Blumenbeeten zu erkennen.&lt;br /&gt;
Voraussetzung dafür ist allerdings das dieser an der Graskante hin zur Insel mit einem kleinen Graben umgeben wird damit dieser zuverlässig erkannt werden&lt;br /&gt;
&lt;br /&gt;
Датчик падения или аварии датчика Arduino предназначено для двигателей, прежде чем аварии до или защитить подобные посадок. Кроме того, он может быть использован для обнаружения острова деревьев и клумб.&lt;br /&gt;
Необходимым условием для этого является то, что он окружен на краю травы к острову с небольшим траншеи так, чтобы она надежно обнаружить&lt;br /&gt;
&lt;br /&gt;
==Подключение:==&lt;br /&gt;
&lt;br /&gt;
Benötigt werden 2 IR Entfernungssensoren. Am besten sind solche geeignet die bereits in einem externen Gehäuse eingebaut sind. Diese haben auch auf der Rückseite eine Einstellmöglichkeit für die Entfernung bzw Empfindlichkeit. Die Standard Ausführung benötigt 3 Anschlussleitungen . &lt;br /&gt;
+5V, GND, Signalleitung und haben eine Empfindlichkeit von ca 30mm – 800mm.&lt;br /&gt;
Bei den Sensor den ich verwende handelt es sich um einen der gegen GND geschaltet wird. Dort habe ich zusätzlich eine Diode in die Signalleitung mit eingebaut um eventuelle positive Spannungen zum Bord zu blockieren und um einen eindeutigen Schaltzustand zu gewährleisten.&lt;br /&gt;
&lt;br /&gt;
Использует 2 ИК датчики расстояния. Наиболее подходит те, которые уже установлены во внешнем корпусе. Они также на задней корректировки для удаления или чувствительности. Стандартная версия требует 3 соединительных линий.&lt;br /&gt;
+ 5V, GND, сигнал линия и имеют чувствительность приблизительно 30 мм - 800 мм.&lt;br /&gt;
Датчик я использую тот, который перешел на GND. Там я установлены дополнительно к любым положительным напряжением, чтобы блокировать диод в сигнальной линии к борту и обеспечить четкое состояние переключения.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery&amp;gt;&lt;br /&gt;
File: Ir Sensor.jpg&lt;br /&gt;
File: IR Sensor Diode.JPG&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==ohne eingbaute Diode==&lt;br /&gt;
&lt;br /&gt;
IR leuchtet bei Kontakt zur Oberfläche&lt;br /&gt;
&lt;br /&gt;
&amp;quot;'без eingbaute диод&amp;quot;'&lt;br /&gt;
&lt;br /&gt;
ИК светится при попадании на поверхность&lt;br /&gt;
ИК подсветка в контакте с поверхностью&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
==Messung:==&lt;br /&gt;
&lt;br /&gt;
+ nach Signalausgang = 4,96V&lt;br /&gt;
&lt;br /&gt;
- nach Signalausgang = 0V&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
IR leuchtet nicht über den Abgrund&lt;br /&gt;
&lt;br /&gt;
Messung:&lt;br /&gt;
&lt;br /&gt;
+ nach Signalausgang = 0V&lt;br /&gt;
&lt;br /&gt;
- nach Signalausgang = 3,72V ( das hat mich gestört ) deshalb habe ich die Diode eingebaut &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Измерение:&lt;br /&gt;
&lt;br /&gt;
+ На выходе сигнал = 4,96V&lt;br /&gt;
&lt;br /&gt;
- На выходе сигнала = 0В&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
ИК не загорается над пропастью&lt;br /&gt;
&lt;br /&gt;
Измерение:&lt;br /&gt;
&lt;br /&gt;
+ На выходе сигнала = 0В&lt;br /&gt;
&lt;br /&gt;
- На выходе сигнала = 3,72V (который беспокоит меня), поэтому я установил диод&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=='''jetzt das ganze mit Diode in der Signalleitung'''==&lt;br /&gt;
&lt;br /&gt;
IR leuchtet bei Kontakt zur Oberfläche&lt;br /&gt;
&lt;br /&gt;
Messung:&lt;br /&gt;
&lt;br /&gt;
+ nach Signalausgang = 4,7V&lt;br /&gt;
&lt;br /&gt;
- nach Signalausgang = 0V&lt;br /&gt;
&lt;br /&gt;
IR leuchtet nicht über den Abgrund&lt;br /&gt;
&lt;br /&gt;
Messung:&lt;br /&gt;
&lt;br /&gt;
+ nach Signalausgang = 0V&lt;br /&gt;
&lt;br /&gt;
- nach Signalausgang = 0V&lt;br /&gt;
&lt;br /&gt;
jetzt 0V gemessen zwischen - und Signalausgang&lt;br /&gt;
&lt;br /&gt;
Ich hatte bedenken gehabt das die 3,72V ein undefinierten Eingang schaffen was evl Probleme bei der Auswertung geben könnte. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Теперь все это с диодом в сигнальной линии '''&lt;br /&gt;
&lt;br /&gt;
ИК подсветка в контакте с поверхностью&lt;br /&gt;
&lt;br /&gt;
Измерение:&lt;br /&gt;
&lt;br /&gt;
+ На выходе сигнал = 4,7 В&lt;br /&gt;
&lt;br /&gt;
- На выходе сигнала = 0В&lt;br /&gt;
&lt;br /&gt;
ИК не загорается над пропастью&lt;br /&gt;
&lt;br /&gt;
Измерение:&lt;br /&gt;
&lt;br /&gt;
+ На выходе сигнала = 0В&lt;br /&gt;
&lt;br /&gt;
- На выходе сигнала = 0В&lt;br /&gt;
&lt;br /&gt;
Теперь измеряется между 0В - и выходной сигнал&lt;br /&gt;
&lt;br /&gt;
Я имел ум создать неопределенную вход, который мог бы дать EVL проблемы при оценке 3,72V.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=='''Einstellung im Sketsch:'''==&lt;br /&gt;
&lt;br /&gt;
Die Absturzsensoren sind ab der Softwarefunktion 242 integriert.&lt;br /&gt;
&lt;br /&gt;
''(Eine Integration in die Handy App bzw. das persönliche Speicher der Einstellungen ist zur Zeit noch nicht Intrigiert.)''&lt;br /&gt;
&lt;br /&gt;
Der Anschluss des linken und rechten Absturzsensor sind an den Pin 45 und 23 vorgesehen.&lt;br /&gt;
&lt;br /&gt;
Um die Funktion zu aktivieren sind folgende Einstellungen in der ''Mower.ccp'' vorzunehmen.&lt;br /&gt;
&lt;br /&gt;
 //  ------ drop -----------------------------------&lt;br /&gt;
  dropUse          = 1;     // has drops?  -Dropsensor - Absturzsensor vorhanden 0-nein  1-Ja&lt;br /&gt;
  dropcontact      = 1;     //contact Kontaktausführung 0-Öffner 1-Schließer  &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Установка в скейтче:'''&lt;br /&gt;
&lt;br /&gt;
Датчики краш интегрированы с функцией программного обеспечения 242-й&lt;br /&gt;
&lt;br /&gt;
'' (А интеграция в мобильном приложении или личной памяти настроек не Заинтригованный на данный момент.) ''&lt;br /&gt;
&lt;br /&gt;
Соединение левой и правой датчиком столкновения предусмотрены на выводе 45 и 23.&lt;br /&gt;
&lt;br /&gt;
Для активации этой функции после установки в '' Mower.ccp &amp;quot;являются&amp;quot; сделал.&lt;br /&gt;
&lt;br /&gt;
  // ------ Падения -----------------------------------&lt;br /&gt;
   dropUse     = 1; // Имеет капель? -Dropsensor - Сбой датчика присутствует 0-Нет 1-Да&lt;br /&gt;
   dropcontact = 1; // контакт Тип контакта 0 открывалка 1-доводчики&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=='''Verdrahtung:'''==&lt;br /&gt;
&lt;br /&gt;
Die IR Sensoren sollten möglichst weit vorne vor den Rädern angebracht werden. Um evl Reichweiten Schwankungen zu vermeiden sollten sie vor fremd Licht geschützt werden.&lt;br /&gt;
Die IR Sensoren sollten so eingestellt werden das diese im normalen Betrieb leuchten, und wenn man den Mover hochhebt ausgehen. &lt;br /&gt;
Am besten gleich auf der Grasoberfläche testen oder dort zumindest gegebenenfalls nachjustieren. &lt;br /&gt;
In der Seriellen Ausgabe kann man den richtigen Anschluss kontrollieren. Sollte der Mover im Normalbetrieb den Kontakt zur Oberfläche haben sollte der Dropsensor nicht ausgelöst sein bzw der Counter des Dropsensors sollte nicht hochgezählt werden.&lt;br /&gt;
Fall das so nicht sein sollte, ist die Einstellung in der ''Mower.ccp'' Datei zu kontrollieren bzw. zu ändern.&lt;br /&gt;
&lt;br /&gt;
 Dropcontact = 1;      ändern in 0&lt;br /&gt;
&lt;br /&gt;
(Kann je nach verwendeten Sensoren anders sein)&lt;br /&gt;
Danach den Mower anheben so das dieser den Kontakt zur Oberfläche verliert.&lt;br /&gt;
Darauf hin sollte in der seriellen Konsole sichtbar sein das der Dropsensor ausgelöst hat bzw. der Counter hoch zählt.&lt;br /&gt;
Darauf hin kann das ganze im automatischen Betrieb getestet werden.&lt;br /&gt;
&lt;br /&gt;
Gegebenenfalls muss noch die Acceleration angepasst werden.&lt;br /&gt;
Diese ist auch in der ''Mower.ccp'' Datei zu finden.&lt;br /&gt;
Das ist die Beschleunigungszeit bzw. die Abbremszeit der Antriebsmotoren. Dieser Wert muss angepasst (erhöht) werden damit der Mower schnell genug an der Gefahrenstelle anhalten kann. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Подключение'''&lt;br /&gt;
&lt;br /&gt;
ИК-датчики должны быть размещены в далеко вперед перед колесами. Чтобы избежать EVL колеблется колебания они должны быть защищены от окружающего света.&lt;br /&gt;
ИК-датчики должны быть отрегулированы так, чтобы они загораются во время нормальной работы, и выйти, когда вы поднимаете переназначения.&lt;br /&gt;
Лучший же тест на травяной поверхности или по крайней мере там при необходимости отрегулировать.&lt;br /&gt;
В последовательным выходом может контролировать соответствующий порт. Если двигатель в нормальном режиме имеют контакт с поверхностью следует падение датчик не срабатывает или счетчик датчика падения не должны учитываться.&lt;br /&gt;
Дело не должно быть так, установка в '' 'Mower.ccp является контроль или изменение' файла.&lt;br /&gt;
&lt;br /&gt;
 Падение Связаться = 1; Изменение 0&lt;br /&gt;
&lt;br /&gt;
(Может быть разным в зависимости от используемых датчиков)&lt;br /&gt;
Затем подъемник косилки так, чтобы они теряет контакт с поверхностью.&lt;br /&gt;
В этой связи должны быть видны в последовательной консоли, что вызвало датчик падения или счетчик увеличивается на единицу.&lt;br /&gt;
В этой связи, все в автоматическом режиме для тестирования.&lt;br /&gt;
&lt;br /&gt;
При необходимости, ускорение нуждается в корректировке.&lt;br /&gt;
Они также могут быть найдены в «Mower.ccp '' файл '.&lt;br /&gt;
Это время разгона или время замедления приводных двигателей. Это значение должно быть скорректированы (увеличение), так что косилка может остановить достаточно быстро, чтобы точки опасности.&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=='''Bekannte Probleme:'''==&lt;br /&gt;
&lt;br /&gt;
Ich habe die Beobachtung gemacht das wenn man die Entfernungseinstellung auf den Gras gegebenenfalls noch nach justiert werden muss.&lt;br /&gt;
Ebenfalls ist mir aufgefallen das wenn die Sensoren auf eine nasse Betonoberfläche stoßen, irrtümlich annehmen das ein Abgrund erkannt wird.&lt;br /&gt;
Da ich an meinen Testmower die Sensoren nur provisorisch angebracht habe, kann ich mir vorstellen das Fremdlicht zu Problemen in der Erkennung führt.&lt;br /&gt;
Ich vermute daher, das wenn man die Sensoren vor Fremdlicht schützt, sich die Zuverlässigkeit auch weiter erhöht.&lt;br /&gt;
&lt;br /&gt;
Evl ist es nötig mit Hilfe einer LED die Fläche zu beleuchten um immer eine gleichmäßige Helligkeit zu gewährleisten.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Известные проблемы:'''&lt;br /&gt;
&lt;br /&gt;
Я сделал замечание, что, если вы, возможно, потребуется скорректировать даже после установки удаления травы.&lt;br /&gt;
Кроме того, я заметил, что, когда датчики попадаются влажной бетонной поверхности, ошибочно полагают, что пропасть обнаружено.&lt;br /&gt;
Поскольку у меня есть датчики установлены в предварительном порядке моей Testmower, я могу себе представить, рассеянный свет приводит к проблемам в признании.&lt;br /&gt;
Подозреваю поэтому, что, если один защищает датчики от окружающего света, надежность еще более увеличена.&lt;br /&gt;
&lt;br /&gt;
Evl необходимо с помощью светодиода, чтобы осветить зону всегда обеспечить равномерную яркость.&lt;/div&gt;</summary>
		<author><name>Unlogic</name></author>	</entry>

	<entry>
		<id>https://wiki.ardumower.de/index.php?title=Dropsensor_ru&amp;diff=2733</id>
		<title>Dropsensor ru</title>
		<link rel="alternate" type="text/html" href="https://wiki.ardumower.de/index.php?title=Dropsensor_ru&amp;diff=2733"/>
				<updated>2015-08-28T08:42:29Z</updated>
		
		<summary type="html">&lt;p&gt;Unlogic: /* Подключение: */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
= Датчик падения =&lt;br /&gt;
&lt;br /&gt;
'''Funktion:'''&lt;br /&gt;
&lt;br /&gt;
Der Arduino Dropsensor oder auch Absturzsensor ist dafür gedacht den Mover vor abstürzen vor Treppenabsätzen oder ähnlichen zu schützen. Ebenso kann dieser eingesetzt werden um Inseln von Bäumen und Blumenbeeten zu erkennen.&lt;br /&gt;
Voraussetzung dafür ist allerdings das dieser an der Graskante hin zur Insel mit einem kleinen Graben umgeben wird damit dieser zuverlässig erkannt werden&lt;br /&gt;
&lt;br /&gt;
Датчик падения или аварии датчика Arduino предназначено для двигателей, прежде чем аварии до или защитить подобные посадок. Кроме того, он может быть использован для обнаружения острова деревьев и клумб.&lt;br /&gt;
Необходимым условием для этого является то, что он окружен на краю травы к острову с небольшим траншеи так, чтобы она надежно обнаружить&lt;br /&gt;
&lt;br /&gt;
==Подключение:==&lt;br /&gt;
&lt;br /&gt;
Benötigt werden 2 IR Entfernungssensoren. Am besten sind solche geeignet die bereits in einem externen Gehäuse eingebaut sind. Diese haben auch auf der Rückseite eine Einstellmöglichkeit für die Entfernung bzw Empfindlichkeit. Die Standard Ausführung benötigt 3 Anschlussleitungen . &lt;br /&gt;
+5V, GND, Signalleitung und haben eine Empfindlichkeit von ca 30mm – 800mm.&lt;br /&gt;
Bei den Sensor den ich verwende handelt es sich um einen der gegen GND geschaltet wird. Dort habe ich zusätzlich eine Diode in die Signalleitung mit eingebaut um eventuelle positive Spannungen zum Bord zu blockieren und um einen eindeutigen Schaltzustand zu gewährleisten.&lt;br /&gt;
&lt;br /&gt;
Использует 2 ИК датчики расстояния. Наиболее подходит те, которые уже установлены во внешнем корпусе. Они также на задней корректировки для удаления или чувствительности. Стандартная версия требует 3 соединительных линий.&lt;br /&gt;
+ 5V, GND, сигнал линия и имеют чувствительность приблизительно 30 мм - 800 мм.&lt;br /&gt;
Датчик я использую тот, который перешел на GND. Там я установлены дополнительно к любым положительным напряжением, чтобы блокировать диод в сигнальной линии к борту и обеспечить четкое состояние переключения.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery&amp;gt;&lt;br /&gt;
File: Ir Sensor.jpg&lt;br /&gt;
File: IR Sensor Diode.JPG&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==ohne eingbaute Diode==&lt;br /&gt;
&lt;br /&gt;
IR leuchtet bei Kontakt zur Oberfläche&lt;br /&gt;
&lt;br /&gt;
&amp;quot;'без eingbaute диод&amp;quot;'&lt;br /&gt;
&lt;br /&gt;
ИК светится при попадании на поверхность&lt;br /&gt;
ИК подсветка в контакте с поверхностью&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
==Messung:==&lt;br /&gt;
&lt;br /&gt;
+ nach Signalausgang = 4,96V&lt;br /&gt;
&lt;br /&gt;
- nach Signalausgang = 0V&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
IR leuchtet nicht über den Abgrund&lt;br /&gt;
&lt;br /&gt;
Messung:&lt;br /&gt;
&lt;br /&gt;
+ nach Signalausgang = 0V&lt;br /&gt;
&lt;br /&gt;
- nach Signalausgang = 3,72V ( das hat mich gestört ) deshalb habe ich die Diode eingebaut &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Измерение:&lt;br /&gt;
&lt;br /&gt;
+ На выходе сигнал = 4,96V&lt;br /&gt;
&lt;br /&gt;
- На выходе сигнала = 0В&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
ИК не загорается над пропастью&lt;br /&gt;
&lt;br /&gt;
Измерение:&lt;br /&gt;
&lt;br /&gt;
+ На выходе сигнала = 0В&lt;br /&gt;
&lt;br /&gt;
- На выходе сигнала = 3,72V (который беспокоит меня), поэтому я установил диод&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=='''jetzt das ganze mit Diode in der Signalleitung'''==&lt;br /&gt;
&lt;br /&gt;
IR leuchtet bei Kontakt zur Oberfläche&lt;br /&gt;
&lt;br /&gt;
Messung:&lt;br /&gt;
&lt;br /&gt;
+ nach Signalausgang = 4,7V&lt;br /&gt;
&lt;br /&gt;
- nach Signalausgang = 0V&lt;br /&gt;
&lt;br /&gt;
IR leuchtet nicht über den Abgrund&lt;br /&gt;
&lt;br /&gt;
Messung:&lt;br /&gt;
&lt;br /&gt;
+ nach Signalausgang = 0V&lt;br /&gt;
&lt;br /&gt;
- nach Signalausgang = 0V&lt;br /&gt;
&lt;br /&gt;
jetzt 0V gemessen zwischen - und Signalausgang&lt;br /&gt;
&lt;br /&gt;
Ich hatte bedenken gehabt das die 3,72V ein undefinierten Eingang schaffen was evl Probleme bei der Auswertung geben könnte. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Теперь все это с диодом в сигнальной линии '''&lt;br /&gt;
&lt;br /&gt;
ИК подсветка в контакте с поверхностью&lt;br /&gt;
&lt;br /&gt;
Измерение:&lt;br /&gt;
&lt;br /&gt;
+ На выходе сигнал = 4,7 В&lt;br /&gt;
&lt;br /&gt;
- На выходе сигнала = 0В&lt;br /&gt;
&lt;br /&gt;
ИК не загорается над пропастью&lt;br /&gt;
&lt;br /&gt;
Измерение:&lt;br /&gt;
&lt;br /&gt;
+ На выходе сигнала = 0В&lt;br /&gt;
&lt;br /&gt;
- На выходе сигнала = 0В&lt;br /&gt;
&lt;br /&gt;
Теперь измеряется между 0В - и выходной сигнал&lt;br /&gt;
&lt;br /&gt;
Я имел ум создать неопределенную вход, который мог бы дать EVL проблемы при оценке 3,72V.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=='''Einstellung im Sketsch:'''==&lt;br /&gt;
&lt;br /&gt;
Die Absturzsensoren sind ab der Softwarefunktion 242 integriert.&lt;br /&gt;
&lt;br /&gt;
''(Eine Integration in die Handy App bzw. das persönliche Speicher der Einstellungen ist zur Zeit noch nicht Intrigiert.)''&lt;br /&gt;
&lt;br /&gt;
Der Anschluss des linken und rechten Absturzsensor sind an den Pin 45 und 23 vorgesehen.&lt;br /&gt;
&lt;br /&gt;
Um die Funktion zu aktivieren sind folgende Einstellungen in der ''Mower.ccp'' vorzunehmen.&lt;br /&gt;
&lt;br /&gt;
 //  ------ drop -----------------------------------&lt;br /&gt;
  dropUse          = 1;     // has drops?  -Dropsensor - Absturzsensor vorhanden 0-nein  1-Ja&lt;br /&gt;
  dropcontact      = 1;     //contact Kontaktausführung 0-Öffner 1-Schließer  &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Установка в скейтче:'''&lt;br /&gt;
&lt;br /&gt;
Датчики краш интегрированы с функцией программного обеспечения 242-й&lt;br /&gt;
&lt;br /&gt;
'' (А интеграция в мобильном приложении или личной памяти настроек не Заинтригованный на данный момент.) ''&lt;br /&gt;
&lt;br /&gt;
Соединение левой и правой датчиком столкновения предусмотрены на выводе 45 и 23.&lt;br /&gt;
&lt;br /&gt;
Для активации этой функции после установки в '' Mower.ccp &amp;quot;являются&amp;quot; сделал.&lt;br /&gt;
&lt;br /&gt;
  // ------ Падения -----------------------------------&lt;br /&gt;
   dropUse     = 1; // Имеет капель? -Dropsensor - Сбой датчика присутствует 0-Нет 1-Да&lt;br /&gt;
   dropcontact = 1; // контакт Тип контакта 0 открывалка 1-доводчики&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=='''Verdrahtung:'''==&lt;br /&gt;
&lt;br /&gt;
Die IR Sensoren sollten möglichst weit vorne vor den Rädern angebracht werden. Um evl Reichweiten Schwankungen zu vermeiden sollten sie vor fremd Licht geschützt werden.&lt;br /&gt;
Die IR Sensoren sollten so eingestellt werden das diese im normalen Betrieb leuchten, und wenn man den Mover hochhebt ausgehen. &lt;br /&gt;
Am besten gleich auf der Grasoberfläche testen oder dort zumindest gegebenenfalls nachjustieren. &lt;br /&gt;
In der Seriellen Ausgabe kann man den richtigen Anschluss kontrollieren. Sollte der Mover im Normalbetrieb den Kontakt zur Oberfläche haben sollte der Dropsensor nicht ausgelöst sein bzw der Counter des Dropsensors sollte nicht hochgezählt werden.&lt;br /&gt;
Fall das so nicht sein sollte, ist die Einstellung in der ''Mower.ccp'' Datei zu kontrollieren bzw. zu ändern.&lt;br /&gt;
&lt;br /&gt;
 Dropcontact = 1;      ändern in 0&lt;br /&gt;
&lt;br /&gt;
(Kann je nach verwendeten Sensoren anders sein)&lt;br /&gt;
Danach den Mower anheben so das dieser den Kontakt zur Oberfläche verliert.&lt;br /&gt;
Darauf hin sollte in der seriellen Konsole sichtbar sein das der Dropsensor ausgelöst hat bzw. der Counter hoch zählt.&lt;br /&gt;
Darauf hin kann das ganze im automatischen Betrieb getestet werden.&lt;br /&gt;
&lt;br /&gt;
Gegebenenfalls muss noch die Acceleration angepasst werden.&lt;br /&gt;
Diese ist auch in der ''Mower.ccp'' Datei zu finden.&lt;br /&gt;
Das ist die Beschleunigungszeit bzw. die Abbremszeit der Antriebsmotoren. Dieser Wert muss angepasst (erhöht) werden damit der Mower schnell genug an der Gefahrenstelle anhalten kann. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Подключение'''&lt;br /&gt;
&lt;br /&gt;
ИК-датчики должны быть размещены в далеко вперед перед колесами. Чтобы избежать EVL колеблется колебания они должны быть защищены от окружающего света.&lt;br /&gt;
ИК-датчики должны быть отрегулированы так, чтобы они загораются во время нормальной работы, и выйти, когда вы поднимаете переназначения.&lt;br /&gt;
Лучший же тест на травяной поверхности или по крайней мере там при необходимости отрегулировать.&lt;br /&gt;
В последовательным выходом может контролировать соответствующий порт. Если двигатель в нормальном режиме имеют контакт с поверхностью следует падение датчик не срабатывает или счетчик датчика падения не должны учитываться.&lt;br /&gt;
Дело не должно быть так, установка в '' 'Mower.ccp является контроль или изменение' файла.&lt;br /&gt;
&lt;br /&gt;
 Падение Связаться = 1; Изменение 0&lt;br /&gt;
&lt;br /&gt;
(Может быть разным в зависимости от используемых датчиков)&lt;br /&gt;
Затем подъемник косилки так, чтобы они теряет контакт с поверхностью.&lt;br /&gt;
В этой связи должны быть видны в последовательной консоли, что вызвало датчик падения или счетчик увеличивается на единицу.&lt;br /&gt;
В этой связи, все в автоматическом режиме для тестирования.&lt;br /&gt;
&lt;br /&gt;
При необходимости, ускорение нуждается в корректировке.&lt;br /&gt;
Они также могут быть найдены в «Mower.ccp '' файл '.&lt;br /&gt;
Это время разгона или время замедления приводных двигателей. Это значение должно быть скорректированы (увеличение), так что косилка может остановить достаточно быстро, чтобы точки опасности.&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=='''Bekannte Probleme:'''==&lt;br /&gt;
&lt;br /&gt;
Ich habe die Beobachtung gemacht das wenn man die Entfernungseinstellung auf den Gras gegebenenfalls noch nach justiert werden muss.&lt;br /&gt;
Ebenfalls ist mir aufgefallen das wenn die Sensoren auf eine nasse Betonoberfläche stoßen, irrtümlich annehmen das ein Abgrund erkannt wird.&lt;br /&gt;
Da ich an meinen Testmower die Sensoren nur provisorisch angebracht habe, kann ich mir vorstellen das Fremdlicht zu Problemen in der Erkennung führt.&lt;br /&gt;
Ich vermute daher, das wenn man die Sensoren vor Fremdlicht schützt, sich die Zuverlässigkeit auch weiter erhöht.&lt;br /&gt;
&lt;br /&gt;
Evl ist es nötig mit Hilfe einer LED die Fläche zu beleuchten um immer eine gleichmäßige Helligkeit zu gewährleisten.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Известные проблемы:'''&lt;br /&gt;
&lt;br /&gt;
Я сделал замечание, что, если вы, возможно, потребуется скорректировать даже после установки удаления травы.&lt;br /&gt;
Кроме того, я заметил, что, когда датчики попадаются влажной бетонной поверхности, ошибочно полагают, что пропасть обнаружено.&lt;br /&gt;
Поскольку у меня есть датчики установлены в предварительном порядке моей Testmower, я могу себе представить, рассеянный свет приводит к проблемам в признании.&lt;br /&gt;
Подозреваю поэтому, что, если один защищает датчики от окружающего света, надежность еще более увеличена.&lt;br /&gt;
&lt;br /&gt;
Evl необходимо с помощью светодиода, чтобы осветить зону всегда обеспечить равномерную яркость.&lt;/div&gt;</summary>
		<author><name>Unlogic</name></author>	</entry>

	<entry>
		<id>https://wiki.ardumower.de/index.php?title=Dropsensor_ru&amp;diff=2732</id>
		<title>Dropsensor ru</title>
		<link rel="alternate" type="text/html" href="https://wiki.ardumower.de/index.php?title=Dropsensor_ru&amp;diff=2732"/>
				<updated>2015-08-28T08:40:51Z</updated>
		
		<summary type="html">&lt;p&gt;Unlogic: /* Датчик падения */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
= Датчик падения =&lt;br /&gt;
&lt;br /&gt;
'''Funktion:'''&lt;br /&gt;
&lt;br /&gt;
Der Arduino Dropsensor oder auch Absturzsensor ist dafür gedacht den Mover vor abstürzen vor Treppenabsätzen oder ähnlichen zu schützen. Ebenso kann dieser eingesetzt werden um Inseln von Bäumen und Blumenbeeten zu erkennen.&lt;br /&gt;
Voraussetzung dafür ist allerdings das dieser an der Graskante hin zur Insel mit einem kleinen Graben umgeben wird damit dieser zuverlässig erkannt werden&lt;br /&gt;
&lt;br /&gt;
Датчик падения или аварии датчика Arduino предназначено для двигателей, прежде чем аварии до или защитить подобные посадок. Кроме того, он может быть использован для обнаружения острова деревьев и клумб.&lt;br /&gt;
Необходимым условием для этого является то, что он окружен на краю травы к острову с небольшим траншеи так, чтобы она надежно обнаружить&lt;br /&gt;
&lt;br /&gt;
==Подключение:==&lt;br /&gt;
&lt;br /&gt;
Benötigt werden 2 IR Entfernungssensoren. Am besten sind solche geeignet die bereits in einem externen Gehäuse eingebaut sind. Diese haben auch auf der Rückseite eine Einstellmöglichkeit für die Entfernung bzw Empfindlichkeit. Die Standard Ausführung benötigt 3 Anschlussleitungen . &lt;br /&gt;
+5V, GND, Signalleitung und haben eine Empfindlichkeit von ca 30mm – 800mm.&lt;br /&gt;
Bei den Sensor den ich verwende handelt es sich um einen der gegen GND geschaltet wird. Dort habe ich zusätzlich eine Diode in die Signalleitung mit eingebaut um eventuelle positive Spannungen zum Bord zu blockieren und um einen eindeutigen Schaltzustand zu gewährleisten.&lt;br /&gt;
&lt;br /&gt;
Использует 2 ИК датчики расстояния. Наиболее подходит те, которые уже установлены во внешнем корпусе. Они также на задней корректировки для удаления или чувствительности. Стандартная версия требует 3 соединительных линий.&lt;br /&gt;
+ 5V, GND, сигнал линия и имеют чувствительность приблизительно 30 мм - 800 мм.&lt;br /&gt;
Датчик я использую тот, который перешел на GND. Там я установлены дополнительно к любым положительным напряжением, чтобы блокировать диод в сигнальной линии к борту и обеспечить четкое состояние переключения.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery&amp;gt;&lt;br /&gt;
File: Ir Sensor.jpg&lt;br /&gt;
File: IR Sensor Diode.JPG&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''ohne eingbaute Diode'''&lt;br /&gt;
&lt;br /&gt;
IR leuchtet bei Kontakt zur Oberfläche&lt;br /&gt;
&lt;br /&gt;
&amp;quot;'без eingbaute диод&amp;quot;'&lt;br /&gt;
&lt;br /&gt;
ИК светится при попадании на поверхность&lt;br /&gt;
ИК подсветка в контакте с поверхностью&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
Messung:&lt;br /&gt;
&lt;br /&gt;
+ nach Signalausgang = 4,96V&lt;br /&gt;
&lt;br /&gt;
- nach Signalausgang = 0V&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
IR leuchtet nicht über den Abgrund&lt;br /&gt;
&lt;br /&gt;
Messung:&lt;br /&gt;
&lt;br /&gt;
+ nach Signalausgang = 0V&lt;br /&gt;
&lt;br /&gt;
- nach Signalausgang = 3,72V ( das hat mich gestört ) deshalb habe ich die Diode eingebaut &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Измерение:&lt;br /&gt;
&lt;br /&gt;
+ На выходе сигнал = 4,96V&lt;br /&gt;
&lt;br /&gt;
- На выходе сигнала = 0В&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
ИК не загорается над пропастью&lt;br /&gt;
&lt;br /&gt;
Измерение:&lt;br /&gt;
&lt;br /&gt;
+ На выходе сигнала = 0В&lt;br /&gt;
&lt;br /&gt;
- На выходе сигнала = 3,72V (который беспокоит меня), поэтому я установил диод&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''jetzt das ganze mit Diode in der Signalleitung'''&lt;br /&gt;
&lt;br /&gt;
IR leuchtet bei Kontakt zur Oberfläche&lt;br /&gt;
&lt;br /&gt;
Messung:&lt;br /&gt;
&lt;br /&gt;
+ nach Signalausgang = 4,7V&lt;br /&gt;
&lt;br /&gt;
- nach Signalausgang = 0V&lt;br /&gt;
&lt;br /&gt;
IR leuchtet nicht über den Abgrund&lt;br /&gt;
&lt;br /&gt;
Messung:&lt;br /&gt;
&lt;br /&gt;
+ nach Signalausgang = 0V&lt;br /&gt;
&lt;br /&gt;
- nach Signalausgang = 0V&lt;br /&gt;
&lt;br /&gt;
jetzt 0V gemessen zwischen - und Signalausgang&lt;br /&gt;
&lt;br /&gt;
Ich hatte bedenken gehabt das die 3,72V ein undefinierten Eingang schaffen was evl Probleme bei der Auswertung geben könnte. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Теперь все это с диодом в сигнальной линии '''&lt;br /&gt;
&lt;br /&gt;
ИК подсветка в контакте с поверхностью&lt;br /&gt;
&lt;br /&gt;
Измерение:&lt;br /&gt;
&lt;br /&gt;
+ На выходе сигнал = 4,7 В&lt;br /&gt;
&lt;br /&gt;
- На выходе сигнала = 0В&lt;br /&gt;
&lt;br /&gt;
ИК не загорается над пропастью&lt;br /&gt;
&lt;br /&gt;
Измерение:&lt;br /&gt;
&lt;br /&gt;
+ На выходе сигнала = 0В&lt;br /&gt;
&lt;br /&gt;
- На выходе сигнала = 0В&lt;br /&gt;
&lt;br /&gt;
Теперь измеряется между 0В - и выходной сигнал&lt;br /&gt;
&lt;br /&gt;
Я имел ум создать неопределенную вход, который мог бы дать EVL проблемы при оценке 3,72V.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Einstellung im Sketsch:'''&lt;br /&gt;
&lt;br /&gt;
Die Absturzsensoren sind ab der Softwarefunktion 242 integriert.&lt;br /&gt;
&lt;br /&gt;
''(Eine Integration in die Handy App bzw. das persönliche Speicher der Einstellungen ist zur Zeit noch nicht Intrigiert.)''&lt;br /&gt;
&lt;br /&gt;
Der Anschluss des linken und rechten Absturzsensor sind an den Pin 45 und 23 vorgesehen.&lt;br /&gt;
&lt;br /&gt;
Um die Funktion zu aktivieren sind folgende Einstellungen in der ''Mower.ccp'' vorzunehmen.&lt;br /&gt;
&lt;br /&gt;
 //  ------ drop -----------------------------------&lt;br /&gt;
  dropUse          = 1;     // has drops?  -Dropsensor - Absturzsensor vorhanden 0-nein  1-Ja&lt;br /&gt;
  dropcontact      = 1;     //contact Kontaktausführung 0-Öffner 1-Schließer  &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Установка в скейтче:'''&lt;br /&gt;
&lt;br /&gt;
Датчики краш интегрированы с функцией программного обеспечения 242-й&lt;br /&gt;
&lt;br /&gt;
'' (А интеграция в мобильном приложении или личной памяти настроек не Заинтригованный на данный момент.) ''&lt;br /&gt;
&lt;br /&gt;
Соединение левой и правой датчиком столкновения предусмотрены на выводе 45 и 23.&lt;br /&gt;
&lt;br /&gt;
Для активации этой функции после установки в '' Mower.ccp &amp;quot;являются&amp;quot; сделал.&lt;br /&gt;
&lt;br /&gt;
  // ------ Падения -----------------------------------&lt;br /&gt;
   dropUse     = 1; // Имеет капель? -Dropsensor - Сбой датчика присутствует 0-Нет 1-Да&lt;br /&gt;
   dropcontact = 1; // контакт Тип контакта 0 открывалка 1-доводчики&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Verdrahtung:'''&lt;br /&gt;
&lt;br /&gt;
Die IR Sensoren sollten möglichst weit vorne vor den Rädern angebracht werden. Um evl Reichweiten Schwankungen zu vermeiden sollten sie vor fremd Licht geschützt werden.&lt;br /&gt;
Die IR Sensoren sollten so eingestellt werden das diese im normalen Betrieb leuchten, und wenn man den Mover hochhebt ausgehen. &lt;br /&gt;
Am besten gleich auf der Grasoberfläche testen oder dort zumindest gegebenenfalls nachjustieren. &lt;br /&gt;
In der Seriellen Ausgabe kann man den richtigen Anschluss kontrollieren. Sollte der Mover im Normalbetrieb den Kontakt zur Oberfläche haben sollte der Dropsensor nicht ausgelöst sein bzw der Counter des Dropsensors sollte nicht hochgezählt werden.&lt;br /&gt;
Fall das so nicht sein sollte, ist die Einstellung in der ''Mower.ccp'' Datei zu kontrollieren bzw. zu ändern.&lt;br /&gt;
&lt;br /&gt;
 Dropcontact = 1;      ändern in 0&lt;br /&gt;
&lt;br /&gt;
(Kann je nach verwendeten Sensoren anders sein)&lt;br /&gt;
Danach den Mower anheben so das dieser den Kontakt zur Oberfläche verliert.&lt;br /&gt;
Darauf hin sollte in der seriellen Konsole sichtbar sein das der Dropsensor ausgelöst hat bzw. der Counter hoch zählt.&lt;br /&gt;
Darauf hin kann das ganze im automatischen Betrieb getestet werden.&lt;br /&gt;
&lt;br /&gt;
Gegebenenfalls muss noch die Acceleration angepasst werden.&lt;br /&gt;
Diese ist auch in der ''Mower.ccp'' Datei zu finden.&lt;br /&gt;
Das ist die Beschleunigungszeit bzw. die Abbremszeit der Antriebsmotoren. Dieser Wert muss angepasst (erhöht) werden damit der Mower schnell genug an der Gefahrenstelle anhalten kann. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Подключение'''&lt;br /&gt;
&lt;br /&gt;
ИК-датчики должны быть размещены в далеко вперед перед колесами. Чтобы избежать EVL колеблется колебания они должны быть защищены от окружающего света.&lt;br /&gt;
ИК-датчики должны быть отрегулированы так, чтобы они загораются во время нормальной работы, и выйти, когда вы поднимаете переназначения.&lt;br /&gt;
Лучший же тест на травяной поверхности или по крайней мере там при необходимости отрегулировать.&lt;br /&gt;
В последовательным выходом может контролировать соответствующий порт. Если двигатель в нормальном режиме имеют контакт с поверхностью следует падение датчик не срабатывает или счетчик датчика падения не должны учитываться.&lt;br /&gt;
Дело не должно быть так, установка в '' 'Mower.ccp является контроль или изменение' файла.&lt;br /&gt;
&lt;br /&gt;
 Падение Связаться = 1; Изменение 0&lt;br /&gt;
&lt;br /&gt;
(Может быть разным в зависимости от используемых датчиков)&lt;br /&gt;
Затем подъемник косилки так, чтобы они теряет контакт с поверхностью.&lt;br /&gt;
В этой связи должны быть видны в последовательной консоли, что вызвало датчик падения или счетчик увеличивается на единицу.&lt;br /&gt;
В этой связи, все в автоматическом режиме для тестирования.&lt;br /&gt;
&lt;br /&gt;
При необходимости, ускорение нуждается в корректировке.&lt;br /&gt;
Они также могут быть найдены в «Mower.ccp '' файл '.&lt;br /&gt;
Это время разгона или время замедления приводных двигателей. Это значение должно быть скорректированы (увеличение), так что косилка может остановить достаточно быстро, чтобы точки опасности.&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
'''Bekannte Probleme:'''&lt;br /&gt;
&lt;br /&gt;
Ich habe die Beobachtung gemacht das wenn man die Entfernungseinstellung auf den Gras gegebenenfalls noch nach justiert werden muss.&lt;br /&gt;
Ebenfalls ist mir aufgefallen das wenn die Sensoren auf eine nasse Betonoberfläche stoßen, irrtümlich annehmen das ein Abgrund erkannt wird.&lt;br /&gt;
Da ich an meinen Testmower die Sensoren nur provisorisch angebracht habe, kann ich mir vorstellen das Fremdlicht zu Problemen in der Erkennung führt.&lt;br /&gt;
Ich vermute daher, das wenn man die Sensoren vor Fremdlicht schützt, sich die Zuverlässigkeit auch weiter erhöht.&lt;br /&gt;
&lt;br /&gt;
Evl ist es nötig mit Hilfe einer LED die Fläche zu beleuchten um immer eine gleichmäßige Helligkeit zu gewährleisten.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Известные проблемы:'''&lt;br /&gt;
&lt;br /&gt;
Я сделал замечание, что, если вы, возможно, потребуется скорректировать даже после установки удаления травы.&lt;br /&gt;
Кроме того, я заметил, что, когда датчики попадаются влажной бетонной поверхности, ошибочно полагают, что пропасть обнаружено.&lt;br /&gt;
Поскольку у меня есть датчики установлены в предварительном порядке моей Testmower, я могу себе представить, рассеянный свет приводит к проблемам в признании.&lt;br /&gt;
Подозреваю поэтому, что, если один защищает датчики от окружающего света, надежность еще более увеличена.&lt;br /&gt;
&lt;br /&gt;
Evl необходимо с помощью светодиода, чтобы осветить зону всегда обеспечить равномерную яркость.&lt;/div&gt;</summary>
		<author><name>Unlogic</name></author>	</entry>

	<entry>
		<id>https://wiki.ardumower.de/index.php?title=Dropsensor_ru&amp;diff=2724</id>
		<title>Dropsensor ru</title>
		<link rel="alternate" type="text/html" href="https://wiki.ardumower.de/index.php?title=Dropsensor_ru&amp;diff=2724"/>
				<updated>2015-08-25T08:14:23Z</updated>
		
		<summary type="html">&lt;p&gt;Unlogic: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
== Датчик падения ==&lt;br /&gt;
&lt;br /&gt;
'''Funktion:'''&lt;br /&gt;
&lt;br /&gt;
Der Arduino Dropsensor oder auch Absturzsensor ist dafür gedacht den Mover vor abstürzen vor Treppenabsätzen oder ähnlichen zu schützen. Ebenso kann dieser eingesetzt werden um Inseln von Bäumen und Blumenbeeten zu erkennen.&lt;br /&gt;
Voraussetzung dafür ist allerdings das dieser an der Graskante hin zur Insel mit einem kleinen Graben umgeben wird damit dieser zuverlässig erkannt werden&lt;br /&gt;
&lt;br /&gt;
Датчик падения или аварии датчика Arduino предназначено для двигателей, прежде чем аварии до или защитить подобные посадок. Кроме того, он может быть использован для обнаружения острова деревьев и клумб.&lt;br /&gt;
Необходимым условием для этого является то, что он окружен на краю травы к острову с небольшим траншеи так, чтобы она надежно обнаружить&lt;br /&gt;
&lt;br /&gt;
'''Подключение:'''&lt;br /&gt;
&lt;br /&gt;
Benötigt werden 2 IR Entfernungssensoren. Am besten sind solche geeignet die bereits in einem externen Gehäuse eingebaut sind. Diese haben auch auf der Rückseite eine Einstellmöglichkeit für die Entfernung bzw Empfindlichkeit. Die Standard Ausführung benötigt 3 Anschlussleitungen . &lt;br /&gt;
+5V, GND, Signalleitung und haben eine Empfindlichkeit von ca 30mm – 800mm.&lt;br /&gt;
Bei den Sensor den ich verwende handelt es sich um einen der gegen GND geschaltet wird. Dort habe ich zusätzlich eine Diode in die Signalleitung mit eingebaut um eventuelle positive Spannungen zum Bord zu blockieren und um einen eindeutigen Schaltzustand zu gewährleisten.&lt;br /&gt;
&lt;br /&gt;
Использует 2 ИК датчики расстояния. Наиболее подходит те, которые уже установлены во внешнем корпусе. Они также на задней корректировки для удаления или чувствительности. Стандартная версия требует 3 соединительных линий.&lt;br /&gt;
+ 5V, GND, сигнал линия и имеют чувствительность приблизительно 30 мм - 800 мм.&lt;br /&gt;
Датчик я использую тот, который перешел на GND. Там я установлены дополнительно к любым положительным напряжением, чтобы блокировать диод в сигнальной линии к борту и обеспечить четкое состояние переключения.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery&amp;gt;&lt;br /&gt;
File: Ir Sensor.jpg&lt;br /&gt;
File: IR Sensor Diode.JPG&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''ohne eingbaute Diode'''&lt;br /&gt;
&lt;br /&gt;
IR leuchtet bei Kontakt zur Oberfläche&lt;br /&gt;
&lt;br /&gt;
&amp;quot;'без eingbaute диод&amp;quot;'&lt;br /&gt;
&lt;br /&gt;
ИК светится при попадании на поверхность&lt;br /&gt;
ИК подсветка в контакте с поверхностью&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
Messung:&lt;br /&gt;
&lt;br /&gt;
+ nach Signalausgang = 4,96V&lt;br /&gt;
&lt;br /&gt;
- nach Signalausgang = 0V&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
IR leuchtet nicht über den Abgrund&lt;br /&gt;
&lt;br /&gt;
Messung:&lt;br /&gt;
&lt;br /&gt;
+ nach Signalausgang = 0V&lt;br /&gt;
&lt;br /&gt;
- nach Signalausgang = 3,72V ( das hat mich gestört ) deshalb habe ich die Diode eingebaut &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Измерение:&lt;br /&gt;
&lt;br /&gt;
+ На выходе сигнал = 4,96V&lt;br /&gt;
&lt;br /&gt;
- На выходе сигнала = 0В&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
ИК не загорается над пропастью&lt;br /&gt;
&lt;br /&gt;
Измерение:&lt;br /&gt;
&lt;br /&gt;
+ На выходе сигнала = 0В&lt;br /&gt;
&lt;br /&gt;
- На выходе сигнала = 3,72V (который беспокоит меня), поэтому я установил диод&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''jetzt das ganze mit Diode in der Signalleitung'''&lt;br /&gt;
&lt;br /&gt;
IR leuchtet bei Kontakt zur Oberfläche&lt;br /&gt;
&lt;br /&gt;
Messung:&lt;br /&gt;
&lt;br /&gt;
+ nach Signalausgang = 4,7V&lt;br /&gt;
&lt;br /&gt;
- nach Signalausgang = 0V&lt;br /&gt;
&lt;br /&gt;
IR leuchtet nicht über den Abgrund&lt;br /&gt;
&lt;br /&gt;
Messung:&lt;br /&gt;
&lt;br /&gt;
+ nach Signalausgang = 0V&lt;br /&gt;
&lt;br /&gt;
- nach Signalausgang = 0V&lt;br /&gt;
&lt;br /&gt;
jetzt 0V gemessen zwischen - und Signalausgang&lt;br /&gt;
&lt;br /&gt;
Ich hatte bedenken gehabt das die 3,72V ein undefinierten Eingang schaffen was evl Probleme bei der Auswertung geben könnte. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Теперь все это с диодом в сигнальной линии '''&lt;br /&gt;
&lt;br /&gt;
ИК подсветка в контакте с поверхностью&lt;br /&gt;
&lt;br /&gt;
Измерение:&lt;br /&gt;
&lt;br /&gt;
+ На выходе сигнал = 4,7 В&lt;br /&gt;
&lt;br /&gt;
- На выходе сигнала = 0В&lt;br /&gt;
&lt;br /&gt;
ИК не загорается над пропастью&lt;br /&gt;
&lt;br /&gt;
Измерение:&lt;br /&gt;
&lt;br /&gt;
+ На выходе сигнала = 0В&lt;br /&gt;
&lt;br /&gt;
- На выходе сигнала = 0В&lt;br /&gt;
&lt;br /&gt;
Теперь измеряется между 0В - и выходной сигнал&lt;br /&gt;
&lt;br /&gt;
Я имел ум создать неопределенную вход, который мог бы дать EVL проблемы при оценке 3,72V.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Einstellung im Sketsch:'''&lt;br /&gt;
&lt;br /&gt;
Die Absturzsensoren sind ab der Softwarefunktion 242 integriert.&lt;br /&gt;
&lt;br /&gt;
''(Eine Integration in die Handy App bzw. das persönliche Speicher der Einstellungen ist zur Zeit noch nicht Intrigiert.)''&lt;br /&gt;
&lt;br /&gt;
Der Anschluss des linken und rechten Absturzsensor sind an den Pin 45 und 23 vorgesehen.&lt;br /&gt;
&lt;br /&gt;
Um die Funktion zu aktivieren sind folgende Einstellungen in der ''Mower.ccp'' vorzunehmen.&lt;br /&gt;
&lt;br /&gt;
 //  ------ drop -----------------------------------&lt;br /&gt;
  dropUse          = 1;     // has drops?  -Dropsensor - Absturzsensor vorhanden 0-nein  1-Ja&lt;br /&gt;
  dropcontact      = 1;     //contact Kontaktausführung 0-Öffner 1-Schließer  &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Установка в скейтче:'''&lt;br /&gt;
&lt;br /&gt;
Датчики краш интегрированы с функцией программного обеспечения 242-й&lt;br /&gt;
&lt;br /&gt;
'' (А интеграция в мобильном приложении или личной памяти настроек не Заинтригованный на данный момент.) ''&lt;br /&gt;
&lt;br /&gt;
Соединение левой и правой датчиком столкновения предусмотрены на выводе 45 и 23.&lt;br /&gt;
&lt;br /&gt;
Для активации этой функции после установки в '' Mower.ccp &amp;quot;являются&amp;quot; сделал.&lt;br /&gt;
&lt;br /&gt;
  // ------ Падения -----------------------------------&lt;br /&gt;
   dropUse     = 1; // Имеет капель? -Dropsensor - Сбой датчика присутствует 0-Нет 1-Да&lt;br /&gt;
   dropcontact = 1; // контакт Тип контакта 0 открывалка 1-доводчики&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Verdrahtung:'''&lt;br /&gt;
&lt;br /&gt;
Die IR Sensoren sollten möglichst weit vorne vor den Rädern angebracht werden. Um evl Reichweiten Schwankungen zu vermeiden sollten sie vor fremd Licht geschützt werden.&lt;br /&gt;
Die IR Sensoren sollten so eingestellt werden das diese im normalen Betrieb leuchten, und wenn man den Mover hochhebt ausgehen. &lt;br /&gt;
Am besten gleich auf der Grasoberfläche testen oder dort zumindest gegebenenfalls nachjustieren. &lt;br /&gt;
In der Seriellen Ausgabe kann man den richtigen Anschluss kontrollieren. Sollte der Mover im Normalbetrieb den Kontakt zur Oberfläche haben sollte der Dropsensor nicht ausgelöst sein bzw der Counter des Dropsensors sollte nicht hochgezählt werden.&lt;br /&gt;
Fall das so nicht sein sollte, ist die Einstellung in der ''Mower.ccp'' Datei zu kontrollieren bzw. zu ändern.&lt;br /&gt;
&lt;br /&gt;
 Dropcontact = 1;      ändern in 0&lt;br /&gt;
&lt;br /&gt;
(Kann je nach verwendeten Sensoren anders sein)&lt;br /&gt;
Danach den Mower anheben so das dieser den Kontakt zur Oberfläche verliert.&lt;br /&gt;
Darauf hin sollte in der seriellen Konsole sichtbar sein das der Dropsensor ausgelöst hat bzw. der Counter hoch zählt.&lt;br /&gt;
Darauf hin kann das ganze im automatischen Betrieb getestet werden.&lt;br /&gt;
&lt;br /&gt;
Gegebenenfalls muss noch die Acceleration angepasst werden.&lt;br /&gt;
Diese ist auch in der ''Mower.ccp'' Datei zu finden.&lt;br /&gt;
Das ist die Beschleunigungszeit bzw. die Abbremszeit der Antriebsmotoren. Dieser Wert muss angepasst (erhöht) werden damit der Mower schnell genug an der Gefahrenstelle anhalten kann. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Подключение'''&lt;br /&gt;
&lt;br /&gt;
ИК-датчики должны быть размещены в далеко вперед перед колесами. Чтобы избежать EVL колеблется колебания они должны быть защищены от окружающего света.&lt;br /&gt;
ИК-датчики должны быть отрегулированы так, чтобы они загораются во время нормальной работы, и выйти, когда вы поднимаете переназначения.&lt;br /&gt;
Лучший же тест на травяной поверхности или по крайней мере там при необходимости отрегулировать.&lt;br /&gt;
В последовательным выходом может контролировать соответствующий порт. Если двигатель в нормальном режиме имеют контакт с поверхностью следует падение датчик не срабатывает или счетчик датчика падения не должны учитываться.&lt;br /&gt;
Дело не должно быть так, установка в '' 'Mower.ccp является контроль или изменение' файла.&lt;br /&gt;
&lt;br /&gt;
 Падение Связаться = 1; Изменение 0&lt;br /&gt;
&lt;br /&gt;
(Может быть разным в зависимости от используемых датчиков)&lt;br /&gt;
Затем подъемник косилки так, чтобы они теряет контакт с поверхностью.&lt;br /&gt;
В этой связи должны быть видны в последовательной консоли, что вызвало датчик падения или счетчик увеличивается на единицу.&lt;br /&gt;
В этой связи, все в автоматическом режиме для тестирования.&lt;br /&gt;
&lt;br /&gt;
При необходимости, ускорение нуждается в корректировке.&lt;br /&gt;
Они также могут быть найдены в «Mower.ccp '' файл '.&lt;br /&gt;
Это время разгона или время замедления приводных двигателей. Это значение должно быть скорректированы (увеличение), так что косилка может остановить достаточно быстро, чтобы точки опасности.&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
'''Bekannte Probleme:'''&lt;br /&gt;
&lt;br /&gt;
Ich habe die Beobachtung gemacht das wenn man die Entfernungseinstellung auf den Gras gegebenenfalls noch nach justiert werden muss.&lt;br /&gt;
Ebenfalls ist mir aufgefallen das wenn die Sensoren auf eine nasse Betonoberfläche stoßen, irrtümlich annehmen das ein Abgrund erkannt wird.&lt;br /&gt;
Da ich an meinen Testmower die Sensoren nur provisorisch angebracht habe, kann ich mir vorstellen das Fremdlicht zu Problemen in der Erkennung führt.&lt;br /&gt;
Ich vermute daher, das wenn man die Sensoren vor Fremdlicht schützt, sich die Zuverlässigkeit auch weiter erhöht.&lt;br /&gt;
&lt;br /&gt;
Evl ist es nötig mit Hilfe einer LED die Fläche zu beleuchten um immer eine gleichmäßige Helligkeit zu gewährleisten.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Известные проблемы:'''&lt;br /&gt;
&lt;br /&gt;
Я сделал замечание, что, если вы, возможно, потребуется скорректировать даже после установки удаления травы.&lt;br /&gt;
Кроме того, я заметил, что, когда датчики попадаются влажной бетонной поверхности, ошибочно полагают, что пропасть обнаружено.&lt;br /&gt;
Поскольку у меня есть датчики установлены в предварительном порядке моей Testmower, я могу себе представить, рассеянный свет приводит к проблемам в признании.&lt;br /&gt;
Подозреваю поэтому, что, если один защищает датчики от окружающего света, надежность еще более увеличена.&lt;br /&gt;
&lt;br /&gt;
Evl необходимо с помощью светодиода, чтобы осветить зону всегда обеспечить равномерную яркость.&lt;/div&gt;</summary>
		<author><name>Unlogic</name></author>	</entry>

	<entry>
		<id>https://wiki.ardumower.de/index.php?title=Russian_Version&amp;diff=2723</id>
		<title>Russian Version</title>
		<link rel="alternate" type="text/html" href="https://wiki.ardumower.de/index.php?title=Russian_Version&amp;diff=2723"/>
				<updated>2015-08-23T13:59:28Z</updated>
		
		<summary type="html">&lt;p&gt;Unlogic: /* Разделы Ardumower */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;__NOTOC__&lt;br /&gt;
&lt;br /&gt;
 -&amp;gt; [[Hauptseite|English version]]&lt;br /&gt;
 -&amp;gt; [[Deutsche Version]] (noch in Bearbeitung)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| border=0&lt;br /&gt;
 |&amp;lt;span style=&amp;quot;color:#cf7606; font-size:200%;&amp;quot;&amp;gt;'''Добро пожаловать на '''&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;lt;span style=&amp;quot;color:#005288; font-size:200%;&amp;quot;&amp;gt;'''Ardumower - робот-газонокосилка своими руками'''&amp;lt;/span&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;font-size:150%;&amp;quot;&amp;gt;Ardumower Вики, база знаний сообщества Ardumower&amp;lt;/span&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
[[Image:H7c785a1.png |100px|left|Ardumower Logo]][[Image:1000x500-ausbildung.jpg|thumb|180px|Image of the month]]&lt;br /&gt;
&lt;br /&gt;
[[Image:Yt-brand-standard-logo-95x40.png|thumb|180px|http://www.youtube.com/user/naneona/videos]]&lt;br /&gt;
Внимание! Страницы на русском являются вольным переводом английской версии. Русскоговорящих единомышленников прошу откликнуться на почтовый ящик ildar на рамблере.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Вы, наверное знаете форум Ardumower, самодельного робота-газонокосилки в Интернете. Теперь есть дополнительный сайт знаний Ardumower на основе Вики. Здесь вы найдете информацию, основы и советы о роботе-газонокосилке. Информация отсортирована по различным темам. С главной страницы вы можете перейти в интересующий Вас раздел. Мы используем MediaWiki.&amp;lt;p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
На этой вики, вы можете создавать и править страницы свободно. Свои первые правки можете попробовать на [[test|тестовой странице]]. Смотрите инструкции по работе с Вики [https://www.mediawiki.org/wiki/Help:Editing_pages/ru].&lt;br /&gt;
&lt;br /&gt;
Помогите нам улучшить эту Вики! Просто [http://wiki.ardumower.de/index.php?title=Spezial:Anmelden/signup зарегистрируйтесь] и начните редактирование сегодня...&lt;br /&gt;
&lt;br /&gt;
=Начало работы / Введение=&lt;br /&gt;
[[Image:Ardumower_overview.png|thumb|400px|Overview]]&lt;br /&gt;
Эти страницы помогут вам начать строить свой собственный робот-косилку:&lt;br /&gt;
*[[Getting started|Приступая к работе]] (внедрение и общие шаги)&lt;br /&gt;
*[[Arduino first steps|Arduino первые шаги]] (если вы прежде никогда не работали с Arduino: как загрузить скейтч на свой Arduino ...)&lt;br /&gt;
&lt;br /&gt;
=Разделы Ardumower=&lt;br /&gt;
По этим ссылкам Вы можете перейти в интересующий раздел:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;color:blue; background-color:#ffffcc;&amp;quot; cellpadding=&amp;quot;10&amp;quot;&lt;br /&gt;
!Сборка шасси&lt;br /&gt;
|[[Ardumower chassis ru|Шасси (перевод в процессе)]] &lt;br /&gt;
|-&lt;br /&gt;
!Исходный код, схемы, печатные платы&lt;br /&gt;
|[[Arduino first steps ru|Arduino первые шаги (перевод в процессе)]]&lt;br /&gt;
|[[Ardumower PCB ru|Печатная плата и прошивка (перевод в процессе)]]&lt;br /&gt;
|[[Arduino Due ru|Arduino Due (перевод в процессе)]]&lt;br /&gt;
|[[Troubleshooting ru|Устранение неполадок (перевод в процессе)]]&lt;br /&gt;
|-&lt;br /&gt;
!Двигатели&lt;br /&gt;
|[[Motor driver ru|Моторы и их драйверы (перевод в процессе)]]&lt;br /&gt;
|[[Relay_ru|Реле]]&lt;br /&gt;
|-&lt;br /&gt;
!Датчики&lt;br /&gt;
|[[Perimeter wire ru|Периметр (перевод в процессе)]]&lt;br /&gt;
|[[Ultrasonic_ru|Ультрасоник]]&lt;br /&gt;
|[[Hall sensor ru|Датчик Холла]]&lt;br /&gt;
|[[Lawn sensor ru|Датчик травы]]&lt;br /&gt;
|[[Odometry ru|Датчики оборотов колеса]]&lt;br /&gt;
|[[IMU ru|Гироскоп (перевод в процессе)]]&lt;br /&gt;
|[[Rain sensor_ru|Датчик дождя]]&lt;br /&gt;
|[[Dropsensor_ru|Датчик падения (перевод в процессе)]]&lt;br /&gt;
|-&lt;br /&gt;
!Питание&lt;br /&gt;
|[[Charging_ru|Зарядка]]&lt;br /&gt;
|-&lt;br /&gt;
!Беспроводные модули&lt;br /&gt;
|[[Model_RC_ru|Радиоуправление на джойстике]]&lt;br /&gt;
|[[Bluetooth_ru|Bluetooth и приложение для смартфонов]]&lt;br /&gt;
|[[GPS_ru|GPS]]&lt;br /&gt;
|-&lt;br /&gt;
!Другие модули&lt;br /&gt;
|[[Realtime clock ru|Часы реального времени]]&lt;br /&gt;
|-&lt;br /&gt;
!Архитектура программы, алгоритмы&lt;br /&gt;
|[http://www.grauonline.de/alexwww/ardumower/sim/mower.html Симулятор Ardumower]&lt;br /&gt;
|[[Ardumower software design ru|Состояния робота]]&lt;br /&gt;
|[[Sensor fusion ru|Обработка сигналов датчиков (перевод в процессе)]]&lt;br /&gt;
|[[PID control ru|ПИД-регулятор]]&lt;br /&gt;
|[[Kalman ru|Расширенный фильтр Калмана (EKF) (перевод в процессе)]]&lt;br /&gt;
|-&lt;br /&gt;
!Программирование Arduino&lt;br /&gt;
|[[Arduino crash course ru|Arduino ускоренный курс (перевод в процессе)]]&lt;br /&gt;
|[[Arduino code techniques ru|Методики программирования Arduino (перевод в процессе)]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=Проекты роботов-газонокосилок=&lt;br /&gt;
Расскажите о вашем проекте робота-косилки на новую Вики-страницу&lt;br /&gt;
* [[Ardumower Chassis 'mountain mod'|Горная модификация шасси]]&lt;br /&gt;
* [[Ardumower Mini|Ardumower Мини]]&lt;br /&gt;
* [[Tracked Mower|Шасси на гусеничном ходу]]&lt;br /&gt;
* ...&lt;br /&gt;
* ...&lt;br /&gt;
&lt;br /&gt;
=Улучшение газонокосилки Ardumower=&lt;br /&gt;
Расскажите о расширениях или улучшениях вашего робота (оптические датчики, компьютерное зрение, инфракрасные датчики местоположения, звук, навигация, беспроводная связь, или любое иное дополнение) на новую Вики-страницу&lt;br /&gt;
* Речевой синтезатор [[Sound module]]&lt;br /&gt;
* Будущая [[Ardumower future PCB|печатная плата]] Ardumower&lt;br /&gt;
* ...&lt;br /&gt;
* ...&lt;br /&gt;
&lt;br /&gt;
=Справка Wiki=&lt;br /&gt;
* Как редактировать и добавлять страницы: [[Wiki help]]&lt;br /&gt;
* Попробовать свои силы в редактировании: [[test]]&lt;br /&gt;
&lt;br /&gt;
=Ссылки=&lt;br /&gt;
[http://www.ardumower.de/index.php/de Официальная страница и форум Ardumower]&lt;br /&gt;
[https://www.marotronics.de/ Магазин Ardumower]&lt;/div&gt;</summary>
		<author><name>Unlogic</name></author>	</entry>

	<entry>
		<id>https://wiki.ardumower.de/index.php?title=Russian_Version&amp;diff=2722</id>
		<title>Russian Version</title>
		<link rel="alternate" type="text/html" href="https://wiki.ardumower.de/index.php?title=Russian_Version&amp;diff=2722"/>
				<updated>2015-08-23T13:57:19Z</updated>
		
		<summary type="html">&lt;p&gt;Unlogic: /* Разделы Ardumower */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;__NOTOC__&lt;br /&gt;
&lt;br /&gt;
 -&amp;gt; [[Hauptseite|English version]]&lt;br /&gt;
 -&amp;gt; [[Deutsche Version]] (noch in Bearbeitung)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| border=0&lt;br /&gt;
 |&amp;lt;span style=&amp;quot;color:#cf7606; font-size:200%;&amp;quot;&amp;gt;'''Добро пожаловать на '''&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;lt;span style=&amp;quot;color:#005288; font-size:200%;&amp;quot;&amp;gt;'''Ardumower - робот-газонокосилка своими руками'''&amp;lt;/span&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;font-size:150%;&amp;quot;&amp;gt;Ardumower Вики, база знаний сообщества Ardumower&amp;lt;/span&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
[[Image:H7c785a1.png |100px|left|Ardumower Logo]][[Image:1000x500-ausbildung.jpg|thumb|180px|Image of the month]]&lt;br /&gt;
&lt;br /&gt;
[[Image:Yt-brand-standard-logo-95x40.png|thumb|180px|http://www.youtube.com/user/naneona/videos]]&lt;br /&gt;
Внимание! Страницы на русском являются вольным переводом английской версии. Русскоговорящих единомышленников прошу откликнуться на почтовый ящик ildar на рамблере.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Вы, наверное знаете форум Ardumower, самодельного робота-газонокосилки в Интернете. Теперь есть дополнительный сайт знаний Ardumower на основе Вики. Здесь вы найдете информацию, основы и советы о роботе-газонокосилке. Информация отсортирована по различным темам. С главной страницы вы можете перейти в интересующий Вас раздел. Мы используем MediaWiki.&amp;lt;p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
На этой вики, вы можете создавать и править страницы свободно. Свои первые правки можете попробовать на [[test|тестовой странице]]. Смотрите инструкции по работе с Вики [https://www.mediawiki.org/wiki/Help:Editing_pages/ru].&lt;br /&gt;
&lt;br /&gt;
Помогите нам улучшить эту Вики! Просто [http://wiki.ardumower.de/index.php?title=Spezial:Anmelden/signup зарегистрируйтесь] и начните редактирование сегодня...&lt;br /&gt;
&lt;br /&gt;
=Начало работы / Введение=&lt;br /&gt;
[[Image:Ardumower_overview.png|thumb|400px|Overview]]&lt;br /&gt;
Эти страницы помогут вам начать строить свой собственный робот-косилку:&lt;br /&gt;
*[[Getting started|Приступая к работе]] (внедрение и общие шаги)&lt;br /&gt;
*[[Arduino first steps|Arduino первые шаги]] (если вы прежде никогда не работали с Arduino: как загрузить скейтч на свой Arduino ...)&lt;br /&gt;
&lt;br /&gt;
=Разделы Ardumower=&lt;br /&gt;
По этим ссылкам Вы можете перейти в интересующий раздел:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;color:blue; background-color:#ffffcc;&amp;quot; cellpadding=&amp;quot;10&amp;quot;&lt;br /&gt;
!Сборка шасси&lt;br /&gt;
|[[Ardumower chassis ru|Шасси (перевод в процессе)]] &lt;br /&gt;
|-&lt;br /&gt;
!Исходный код, схемы, печатные платы&lt;br /&gt;
|[[Arduino first steps ru|Arduino первые шаги (перевод в процессе)]]&lt;br /&gt;
|[[Ardumower PCB ru|Печатная плата и прошивка (перевод в процессе)]]&lt;br /&gt;
|[[Arduino Due ru|Arduino Due (перевод в процессе)]]&lt;br /&gt;
|[[Troubleshooting ru|Устранение неполадок (перевод в процессе)]]&lt;br /&gt;
|-&lt;br /&gt;
!Двигатели&lt;br /&gt;
|[[Motor driver ru|Моторы и их драйверы (перевод в процессе)]]&lt;br /&gt;
|[[Relay_ru|Реле]]&lt;br /&gt;
|-&lt;br /&gt;
!Датчики&lt;br /&gt;
|[[Perimeter wire ru|Периметр (перевод в процессе)]]&lt;br /&gt;
|[[Ultrasonic_ru|Ультрасоник]]&lt;br /&gt;
|[[Hall sensor ru|Датчик Холла]]&lt;br /&gt;
|[[Lawn sensor ru|Датчик травы]]&lt;br /&gt;
|[[Odometry ru|Датчики оборотов колеса]]&lt;br /&gt;
|[[IMU ru|Гироскоп (перевод в процессе)]]&lt;br /&gt;
|[[Rain sensor_ru|Датчик дождя]]&lt;br /&gt;
|[[Dropsensor_ru|Датчик поднятия (перевод в процессе)]]&lt;br /&gt;
|-&lt;br /&gt;
!Питание&lt;br /&gt;
|[[Charging_ru|Зарядка]]&lt;br /&gt;
|-&lt;br /&gt;
!Беспроводные модули&lt;br /&gt;
|[[Model_RC_ru|Радиоуправление на джойстике]]&lt;br /&gt;
|[[Bluetooth_ru|Bluetooth и приложение для смартфонов]]&lt;br /&gt;
|[[GPS_ru|GPS]]&lt;br /&gt;
|-&lt;br /&gt;
!Другие модули&lt;br /&gt;
|[[Realtime clock ru|Часы реального времени]]&lt;br /&gt;
|-&lt;br /&gt;
!Архитектура программы, алгоритмы&lt;br /&gt;
|[http://www.grauonline.de/alexwww/ardumower/sim/mower.html Симулятор Ardumower]&lt;br /&gt;
|[[Ardumower software design ru|Состояния робота]]&lt;br /&gt;
|[[Sensor fusion ru|Обработка сигналов датчиков (перевод в процессе)]]&lt;br /&gt;
|[[PID control ru|ПИД-регулятор]]&lt;br /&gt;
|[[Kalman ru|Расширенный фильтр Калмана (EKF) (перевод в процессе)]]&lt;br /&gt;
|-&lt;br /&gt;
!Программирование Arduino&lt;br /&gt;
|[[Arduino crash course ru|Arduino ускоренный курс (перевод в процессе)]]&lt;br /&gt;
|[[Arduino code techniques ru|Методики программирования Arduino (перевод в процессе)]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=Проекты роботов-газонокосилок=&lt;br /&gt;
Расскажите о вашем проекте робота-косилки на новую Вики-страницу&lt;br /&gt;
* [[Ardumower Chassis 'mountain mod'|Горная модификация шасси]]&lt;br /&gt;
* [[Ardumower Mini|Ardumower Мини]]&lt;br /&gt;
* [[Tracked Mower|Шасси на гусеничном ходу]]&lt;br /&gt;
* ...&lt;br /&gt;
* ...&lt;br /&gt;
&lt;br /&gt;
=Улучшение газонокосилки Ardumower=&lt;br /&gt;
Расскажите о расширениях или улучшениях вашего робота (оптические датчики, компьютерное зрение, инфракрасные датчики местоположения, звук, навигация, беспроводная связь, или любое иное дополнение) на новую Вики-страницу&lt;br /&gt;
* Речевой синтезатор [[Sound module]]&lt;br /&gt;
* Будущая [[Ardumower future PCB|печатная плата]] Ardumower&lt;br /&gt;
* ...&lt;br /&gt;
* ...&lt;br /&gt;
&lt;br /&gt;
=Справка Wiki=&lt;br /&gt;
* Как редактировать и добавлять страницы: [[Wiki help]]&lt;br /&gt;
* Попробовать свои силы в редактировании: [[test]]&lt;br /&gt;
&lt;br /&gt;
=Ссылки=&lt;br /&gt;
[http://www.ardumower.de/index.php/de Официальная страница и форум Ardumower]&lt;br /&gt;
[https://www.marotronics.de/ Магазин Ardumower]&lt;/div&gt;</summary>
		<author><name>Unlogic</name></author>	</entry>

	<entry>
		<id>https://wiki.ardumower.de/index.php?title=Lawn_sensor_ru&amp;diff=2721</id>
		<title>Lawn sensor ru</title>
		<link rel="alternate" type="text/html" href="https://wiki.ardumower.de/index.php?title=Lawn_sensor_ru&amp;diff=2721"/>
				<updated>2015-08-23T13:56:52Z</updated>
		
		<summary type="html">&lt;p&gt;Unlogic: /* Принцип работы */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Датчик травы ==&lt;br /&gt;
&lt;br /&gt;
[[File:capacity.png|caption]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Датчиком травы может быть медная пластина в пластиковой трубке и работает по принципу сенсорной кнопки.  &lt;br /&gt;
Идея состоит в том, что любой объект имеет емкость, а современные микроконтроллеры работают на такой скорости, которая позволяет измерить емкость даже отдельного кусочка фольги размером 1х1 см.&lt;br /&gt;
Нет никакой разницы в емкости между травой и полезными цветами, которые посадила ваша жена, грядками клубники и т.д. - так что вы должны иметь четкую зону вокруг вашего газона (например,  мульчу).&lt;br /&gt;
&lt;br /&gt;
== Принцип работы ==&lt;br /&gt;
&lt;br /&gt;
Ножка 40 микроконтроллера подтягивается к ножке 41 резистором достаточно большого номинала (1-2 мегаом), и к ножке 40 подключается площадка сенсора. Оценка емкости производится путем измерения времени заряда площадки до напряжения логической единицы — это возможно, поскольку выводы микроконтроллера обладают пороговыми свойствами, т.е., в регистре PIN будет читаться единица начиная с какого-то определенного уровня (около 1В, немного различается для разных кристаллов). Алгоритм опроса такого сенсора выглядит следующим образом:&lt;br /&gt;
&lt;br /&gt;
 1. Настроить ножку на выход;&lt;br /&gt;
 2. На ножку 40 подается логический ноль, чтобы гарантированно разрядить сенсор перед замером;&lt;br /&gt;
 3. Настроить ножку на вход;&lt;br /&gt;
 4. Посчитать, за сколько тактов напряжение на ней достигнет единицы.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery&amp;gt;&lt;br /&gt;
File: l50_capmeter.jpg&lt;br /&gt;
&lt;br /&gt;
File: lawn_sensor.jpg&lt;br /&gt;
&lt;br /&gt;
File: capsense.gif&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Подключение ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''''Передний датчик:'''''  &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 Arduino Mega Pin 40 Receive Front -------------| &lt;br /&gt;
&lt;br /&gt;
 Arduino Mega Pin 41 Send    Front --- 2 MOhm --+---|  Lawn &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''''Задний датчик:'''''&lt;br /&gt;
&lt;br /&gt;
 Arduino Mega Pin 42 Receive Back  -------------| &lt;br /&gt;
&lt;br /&gt;
 Arduino Mega Pin 43 Send    Back  --- 2 MOhm --+---|  Lawn&lt;/div&gt;</summary>
		<author><name>Unlogic</name></author>	</entry>

	<entry>
		<id>https://wiki.ardumower.de/index.php?title=Lawn_sensor_ru&amp;diff=2720</id>
		<title>Lawn sensor ru</title>
		<link rel="alternate" type="text/html" href="https://wiki.ardumower.de/index.php?title=Lawn_sensor_ru&amp;diff=2720"/>
				<updated>2015-08-23T13:56:32Z</updated>
		
		<summary type="html">&lt;p&gt;Unlogic: /* Подключение */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Датчик травы ==&lt;br /&gt;
&lt;br /&gt;
[[File:capacity.png|caption]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Датчиком травы может быть медная пластина в пластиковой трубке и работает по принципу сенсорной кнопки.  &lt;br /&gt;
Идея состоит в том, что любой объект имеет емкость, а современные микроконтроллеры работают на такой скорости, которая позволяет измерить емкость даже отдельного кусочка фольги размером 1х1 см.&lt;br /&gt;
Нет никакой разницы в емкости между травой и полезными цветами, которые посадила ваша жена, грядками клубники и т.д. - так что вы должны иметь четкую зону вокруг вашего газона (например,  мульчу).&lt;br /&gt;
&lt;br /&gt;
== Принцип работы ==&lt;br /&gt;
&lt;br /&gt;
Ножка 40 микроконтроллера подтягивается к ножке 41 резистором достаточно большого номинала (1-2 мегаом), и к ножке 40 подключается площадка сенсора. Оценка емкости производится путем измерения времени заряда площадки до напряжения логической единицы — это возможно, поскольку выводы микроконтроллера обладают пороговыми свойствами, т.е., в регистре PIN будет читаться единица начиная с какого-то определенного уровня (около 1В, немного различается для разных кристаллов). Алгоритм опроса такого сенсора выглядит следующим образом:&lt;br /&gt;
&lt;br /&gt;
1. Настроить ножку на выход;&lt;br /&gt;
2. На ножку 40 подается логический ноль, чтобы гарантированно разрядить сенсор перед замером;&lt;br /&gt;
3. Настроить ножку на вход;&lt;br /&gt;
4. Посчитать, за сколько тактов напряжение на ней достигнет единицы.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery&amp;gt;&lt;br /&gt;
File: l50_capmeter.jpg&lt;br /&gt;
&lt;br /&gt;
File: lawn_sensor.jpg&lt;br /&gt;
&lt;br /&gt;
File: capsense.gif&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Подключение ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''''Передний датчик:'''''  &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 Arduino Mega Pin 40 Receive Front -------------| &lt;br /&gt;
&lt;br /&gt;
 Arduino Mega Pin 41 Send    Front --- 2 MOhm --+---|  Lawn &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''''Задний датчик:'''''&lt;br /&gt;
&lt;br /&gt;
 Arduino Mega Pin 42 Receive Back  -------------| &lt;br /&gt;
&lt;br /&gt;
 Arduino Mega Pin 43 Send    Back  --- 2 MOhm --+---|  Lawn&lt;/div&gt;</summary>
		<author><name>Unlogic</name></author>	</entry>

	<entry>
		<id>https://wiki.ardumower.de/index.php?title=Lawn_sensor_ru&amp;diff=2719</id>
		<title>Lawn sensor ru</title>
		<link rel="alternate" type="text/html" href="https://wiki.ardumower.de/index.php?title=Lawn_sensor_ru&amp;diff=2719"/>
				<updated>2015-08-23T13:55:48Z</updated>
		
		<summary type="html">&lt;p&gt;Unlogic: /* Принцип работы */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Датчик травы ==&lt;br /&gt;
&lt;br /&gt;
[[File:capacity.png|caption]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Датчиком травы может быть медная пластина в пластиковой трубке и работает по принципу сенсорной кнопки.  &lt;br /&gt;
Идея состоит в том, что любой объект имеет емкость, а современные микроконтроллеры работают на такой скорости, которая позволяет измерить емкость даже отдельного кусочка фольги размером 1х1 см.&lt;br /&gt;
Нет никакой разницы в емкости между травой и полезными цветами, которые посадила ваша жена, грядками клубники и т.д. - так что вы должны иметь четкую зону вокруг вашего газона (например,  мульчу).&lt;br /&gt;
&lt;br /&gt;
== Принцип работы ==&lt;br /&gt;
&lt;br /&gt;
Ножка 40 микроконтроллера подтягивается к ножке 41 резистором достаточно большого номинала (1-2 мегаом), и к ножке 40 подключается площадка сенсора. Оценка емкости производится путем измерения времени заряда площадки до напряжения логической единицы — это возможно, поскольку выводы микроконтроллера обладают пороговыми свойствами, т.е., в регистре PIN будет читаться единица начиная с какого-то определенного уровня (около 1В, немного различается для разных кристаллов). Алгоритм опроса такого сенсора выглядит следующим образом:&lt;br /&gt;
&lt;br /&gt;
1. Настроить ножку на выход;&lt;br /&gt;
2. На ножку 40 подается логический ноль, чтобы гарантированно разрядить сенсор перед замером;&lt;br /&gt;
3. Настроить ножку на вход;&lt;br /&gt;
4. Посчитать, за сколько тактов напряжение на ней достигнет единицы.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery&amp;gt;&lt;br /&gt;
File: l50_capmeter.jpg&lt;br /&gt;
&lt;br /&gt;
File: lawn_sensor.jpg&lt;br /&gt;
&lt;br /&gt;
File: capsense.gif&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Подключение ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''''Front lawn sensor:'''''  &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 Arduino Mega Pin 40 Receive Front -------------| &lt;br /&gt;
&lt;br /&gt;
 Arduino Mega Pin 41 Send    Front --- 2 MOhm --+---|  Lawn &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''''Back lawn sensor:'''''&lt;br /&gt;
&lt;br /&gt;
 Arduino Mega Pin 42 Receive Back  -------------| &lt;br /&gt;
&lt;br /&gt;
 Arduino Mega Pin 43 Send    Back  --- 2 MOhm --+---|  Lawn&lt;/div&gt;</summary>
		<author><name>Unlogic</name></author>	</entry>

	<entry>
		<id>https://wiki.ardumower.de/index.php?title=Lawn_sensor_ru&amp;diff=2718</id>
		<title>Lawn sensor ru</title>
		<link rel="alternate" type="text/html" href="https://wiki.ardumower.de/index.php?title=Lawn_sensor_ru&amp;diff=2718"/>
				<updated>2015-08-23T13:53:39Z</updated>
		
		<summary type="html">&lt;p&gt;Unlogic: /* Детали операции */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Датчик травы ==&lt;br /&gt;
&lt;br /&gt;
[[File:capacity.png|caption]]&lt;br /&gt;
&lt;br /&gt;
A lawn sensor should detect if the robot is still on lawn or not. In other words, it should find out if the media directly below the robot is still lawn or something else (air etc.).  Therefore, a capacitance sensor can be used as the media below the robot has influence on the capacitance. However, there is no difference in capacitance between lawn and flowers etc. - so you should have a distinct area around your lawn that is different to lawn (e.g. bark mulch).&lt;br /&gt;
&lt;br /&gt;
Датчик травы должен обнаружить, находится ли робот все еще на лужайке или нет. Другими словами, он должен узнать, есть непосредственно под роботом газон или же что-то еще (воздух и т.д.). &lt;br /&gt;
Емкостной датчик может быть использован в качестве датчика. &lt;br /&gt;
&lt;br /&gt;
Нет никакой разницы в емкости между травой и полезными цветами, которые посадила ваша жена, грядками клубники и т.д. - так что вы должны иметь четкую зону вокруг вашего газона (например,  мульчу).&lt;br /&gt;
&lt;br /&gt;
== Принцип работы ==&lt;br /&gt;
&lt;br /&gt;
A lawn sensor could be a copper plate in a closed plastic tube. To find out if the plate has contact with lawn, the capacitance of this sensor is measured. If the robot is on lawn (lawn is 'dielectric'), the measured capacity increases slightly (by a few pF).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery&amp;gt;&lt;br /&gt;
File: l50_capmeter.jpg&lt;br /&gt;
&lt;br /&gt;
File: lawn_sensor.jpg&lt;br /&gt;
&lt;br /&gt;
File: capsense.gif&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Подключение ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''''Front lawn sensor:'''''  &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 Arduino Mega Pin 40 Receive Front -------------| &lt;br /&gt;
&lt;br /&gt;
 Arduino Mega Pin 41 Send    Front --- 2 MOhm --+---|  Lawn &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''''Back lawn sensor:'''''&lt;br /&gt;
&lt;br /&gt;
 Arduino Mega Pin 42 Receive Back  -------------| &lt;br /&gt;
&lt;br /&gt;
 Arduino Mega Pin 43 Send    Back  --- 2 MOhm --+---|  Lawn&lt;br /&gt;
&lt;br /&gt;
== Детали ==&lt;br /&gt;
&lt;br /&gt;
Ножка 40 микроконтроллера подтягивается к ножке 41 резистором достаточно большого номинала (1-2 мегаом), и к ножке 40 подключается площадка сенсора. Оценка емкости производится путем измерения времени заряда площадки до напряжения логической единицы — это возможно, поскольку выводы микроконтроллера обладают пороговыми свойствами, т.е., в регистре PIN будет читаться единица начиная с какого-то определенного уровня (около 1В, немного различается для разных кристаллов). Алгоритм опроса такого сенсора выглядит следующим образом:&lt;br /&gt;
&lt;br /&gt;
1. Настроить ножку на выход;&lt;br /&gt;
2. На ножку 40 подается логический ноль, чтобы гарантированно разрядить сенсор перед замером;&lt;br /&gt;
3. Настроить ножку на вход;&lt;br /&gt;
4. Посчитать, за сколько тактов напряжение на ней достигнет единицы.&lt;/div&gt;</summary>
		<author><name>Unlogic</name></author>	</entry>

	<entry>
		<id>https://wiki.ardumower.de/index.php?title=Lawn_sensor_ru&amp;diff=2717</id>
		<title>Lawn sensor ru</title>
		<link rel="alternate" type="text/html" href="https://wiki.ardumower.de/index.php?title=Lawn_sensor_ru&amp;diff=2717"/>
				<updated>2015-08-23T13:39:11Z</updated>
		
		<summary type="html">&lt;p&gt;Unlogic: /* Датчик травы */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Датчик травы ==&lt;br /&gt;
&lt;br /&gt;
[[File:capacity.png|caption]]&lt;br /&gt;
&lt;br /&gt;
A lawn sensor should detect if the robot is still on lawn or not. In other words, it should find out if the media directly below the robot is still lawn or something else (air etc.).  Therefore, a capacitance sensor can be used as the media below the robot has influence on the capacitance. However, there is no difference in capacitance between lawn and flowers etc. - so you should have a distinct area around your lawn that is different to lawn (e.g. bark mulch).&lt;br /&gt;
&lt;br /&gt;
Датчик травы должен обнаружить, находится ли робот все еще на лужайке или нет. Другими словами, он должен узнать, есть непосредственно под роботом газон или же что-то еще (воздух и т.д.). &lt;br /&gt;
Емкостной датчик может быть использован в качестве датчика. &lt;br /&gt;
&lt;br /&gt;
Нет никакой разницы в емкости между травой и полезными цветами, которые посадила ваша жена, грядками клубники и т.д. - так что вы должны иметь четкую зону вокруг вашего газона (например,  мульчу).&lt;br /&gt;
&lt;br /&gt;
== Принцип работы ==&lt;br /&gt;
&lt;br /&gt;
A lawn sensor could be a copper plate in a closed plastic tube. To find out if the plate has contact with lawn, the capacitance of this sensor is measured. If the robot is on lawn (lawn is 'dielectric'), the measured capacity increases slightly (by a few pF).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery&amp;gt;&lt;br /&gt;
File: l50_capmeter.jpg&lt;br /&gt;
&lt;br /&gt;
File: lawn_sensor.jpg&lt;br /&gt;
&lt;br /&gt;
File: capsense.gif&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Подключение ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''''Front lawn sensor:'''''  &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 Arduino Mega Pin 40 Receive Front -------------| &lt;br /&gt;
&lt;br /&gt;
 Arduino Mega Pin 41 Send    Front --- 2 MOhm --+---|  Lawn &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''''Back lawn sensor:'''''&lt;br /&gt;
&lt;br /&gt;
 Arduino Mega Pin 42 Receive Back  -------------| &lt;br /&gt;
&lt;br /&gt;
 Arduino Mega Pin 43 Send    Back  --- 2 MOhm --+---|  Lawn&lt;br /&gt;
&lt;br /&gt;
== Детали операции ==&lt;br /&gt;
&lt;br /&gt;
Initially, the copper plate is discharged by pulling the send pin to low. &lt;br /&gt;
Then the send pin is set to 'high' - via a resistor (2 Megaohm) the copper plate is charging slowly. &lt;br /&gt;
By constantly reading input receiver pin, the Arduino measures the time until it becomes 'high' (capacity measurement). &lt;br /&gt;
Because microcontrollers are fast and precise in time measurement, you can measure very low capacities with this.&lt;/div&gt;</summary>
		<author><name>Unlogic</name></author>	</entry>

	<entry>
		<id>https://wiki.ardumower.de/index.php?title=Russian_Version&amp;diff=2716</id>
		<title>Russian Version</title>
		<link rel="alternate" type="text/html" href="https://wiki.ardumower.de/index.php?title=Russian_Version&amp;diff=2716"/>
				<updated>2015-08-23T13:34:23Z</updated>
		
		<summary type="html">&lt;p&gt;Unlogic: /* Разделы Ardumower */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;__NOTOC__&lt;br /&gt;
&lt;br /&gt;
 -&amp;gt; [[Hauptseite|English version]]&lt;br /&gt;
 -&amp;gt; [[Deutsche Version]] (noch in Bearbeitung)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| border=0&lt;br /&gt;
 |&amp;lt;span style=&amp;quot;color:#cf7606; font-size:200%;&amp;quot;&amp;gt;'''Добро пожаловать на '''&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;lt;span style=&amp;quot;color:#005288; font-size:200%;&amp;quot;&amp;gt;'''Ardumower - робот-газонокосилка своими руками'''&amp;lt;/span&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;font-size:150%;&amp;quot;&amp;gt;Ardumower Вики, база знаний сообщества Ardumower&amp;lt;/span&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
[[Image:H7c785a1.png |100px|left|Ardumower Logo]][[Image:1000x500-ausbildung.jpg|thumb|180px|Image of the month]]&lt;br /&gt;
&lt;br /&gt;
[[Image:Yt-brand-standard-logo-95x40.png|thumb|180px|http://www.youtube.com/user/naneona/videos]]&lt;br /&gt;
Внимание! Страницы на русском являются вольным переводом английской версии. Русскоговорящих единомышленников прошу откликнуться на почтовый ящик ildar на рамблере.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Вы, наверное знаете форум Ardumower, самодельного робота-газонокосилки в Интернете. Теперь есть дополнительный сайт знаний Ardumower на основе Вики. Здесь вы найдете информацию, основы и советы о роботе-газонокосилке. Информация отсортирована по различным темам. С главной страницы вы можете перейти в интересующий Вас раздел. Мы используем MediaWiki.&amp;lt;p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
На этой вики, вы можете создавать и править страницы свободно. Свои первые правки можете попробовать на [[test|тестовой странице]]. Смотрите инструкции по работе с Вики [https://www.mediawiki.org/wiki/Help:Editing_pages/ru].&lt;br /&gt;
&lt;br /&gt;
Помогите нам улучшить эту Вики! Просто [http://wiki.ardumower.de/index.php?title=Spezial:Anmelden/signup зарегистрируйтесь] и начните редактирование сегодня...&lt;br /&gt;
&lt;br /&gt;
=Начало работы / Введение=&lt;br /&gt;
[[Image:Ardumower_overview.png|thumb|400px|Overview]]&lt;br /&gt;
Эти страницы помогут вам начать строить свой собственный робот-косилку:&lt;br /&gt;
*[[Getting started|Приступая к работе]] (внедрение и общие шаги)&lt;br /&gt;
*[[Arduino first steps|Arduino первые шаги]] (если вы прежде никогда не работали с Arduino: как загрузить скейтч на свой Arduino ...)&lt;br /&gt;
&lt;br /&gt;
=Разделы Ardumower=&lt;br /&gt;
По этим ссылкам Вы можете перейти в интересующий раздел:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;color:blue; background-color:#ffffcc;&amp;quot; cellpadding=&amp;quot;10&amp;quot;&lt;br /&gt;
!Сборка шасси&lt;br /&gt;
|[[Ardumower chassis ru|Шасси (перевод в процессе)]] &lt;br /&gt;
|-&lt;br /&gt;
!Исходный код, схемы, печатные платы&lt;br /&gt;
|[[Arduino first steps ru|Arduino первые шаги (перевод в процессе)]]&lt;br /&gt;
|[[Ardumower PCB ru|Печатная плата и прошивка (перевод в процессе)]]&lt;br /&gt;
|[[Arduino Due ru|Arduino Due (перевод в процессе)]]&lt;br /&gt;
|[[Troubleshooting ru|Устранение неполадок (перевод в процессе)]]&lt;br /&gt;
|-&lt;br /&gt;
!Двигатели&lt;br /&gt;
|[[Motor driver ru|Моторы и их драйверы (перевод в процессе)]]&lt;br /&gt;
|[[Relay_ru|Реле]]&lt;br /&gt;
|-&lt;br /&gt;
!Датчики&lt;br /&gt;
|[[Perimeter wire ru|Периметр (перевод в процессе)]]&lt;br /&gt;
|[[Ultrasonic_ru|Ультрасоник]]&lt;br /&gt;
|[[Hall sensor ru|Датчик Холла]]&lt;br /&gt;
|[[Lawn sensor ru|Датчик травы (перевод в процессе)]]&lt;br /&gt;
|[[Odometry ru|Датчики оборотов колеса]]&lt;br /&gt;
|[[IMU ru|Гироскоп (перевод в процессе)]]&lt;br /&gt;
|[[Rain sensor_ru|Датчик дождя]]&lt;br /&gt;
|[[Dropsensor_ru|Датчик поднятия (перевод в процессе)]]&lt;br /&gt;
|-&lt;br /&gt;
!Питание&lt;br /&gt;
|[[Charging_ru|Зарядка]]&lt;br /&gt;
|-&lt;br /&gt;
!Беспроводные модули&lt;br /&gt;
|[[Model_RC_ru|Радиоуправление на джойстике]]&lt;br /&gt;
|[[Bluetooth_ru|Bluetooth и приложение для смартфонов]]&lt;br /&gt;
|[[GPS_ru|GPS]]&lt;br /&gt;
|-&lt;br /&gt;
!Другие модули&lt;br /&gt;
|[[Realtime clock ru|Часы реального времени]]&lt;br /&gt;
|-&lt;br /&gt;
!Архитектура программы, алгоритмы&lt;br /&gt;
|[http://www.grauonline.de/alexwww/ardumower/sim/mower.html Симулятор Ardumower]&lt;br /&gt;
|[[Ardumower software design ru|Состояния робота]]&lt;br /&gt;
|[[Sensor fusion ru|Обработка сигналов датчиков (перевод в процессе)]]&lt;br /&gt;
|[[PID control ru|ПИД-регулятор]]&lt;br /&gt;
|[[Kalman ru|Расширенный фильтр Калмана (EKF) (перевод в процессе)]]&lt;br /&gt;
|-&lt;br /&gt;
!Программирование Arduino&lt;br /&gt;
|[[Arduino crash course ru|Arduino ускоренный курс (перевод в процессе)]]&lt;br /&gt;
|[[Arduino code techniques ru|Методики программирования Arduino (перевод в процессе)]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=Проекты роботов-газонокосилок=&lt;br /&gt;
Расскажите о вашем проекте робота-косилки на новую Вики-страницу&lt;br /&gt;
* [[Ardumower Chassis 'mountain mod'|Горная модификация шасси]]&lt;br /&gt;
* [[Ardumower Mini|Ardumower Мини]]&lt;br /&gt;
* [[Tracked Mower|Шасси на гусеничном ходу]]&lt;br /&gt;
* ...&lt;br /&gt;
* ...&lt;br /&gt;
&lt;br /&gt;
=Улучшение газонокосилки Ardumower=&lt;br /&gt;
Расскажите о расширениях или улучшениях вашего робота (оптические датчики, компьютерное зрение, инфракрасные датчики местоположения, звук, навигация, беспроводная связь, или любое иное дополнение) на новую Вики-страницу&lt;br /&gt;
* Речевой синтезатор [[Sound module]]&lt;br /&gt;
* Будущая [[Ardumower future PCB|печатная плата]] Ardumower&lt;br /&gt;
* ...&lt;br /&gt;
* ...&lt;br /&gt;
&lt;br /&gt;
=Справка Wiki=&lt;br /&gt;
* Как редактировать и добавлять страницы: [[Wiki help]]&lt;br /&gt;
* Попробовать свои силы в редактировании: [[test]]&lt;br /&gt;
&lt;br /&gt;
=Ссылки=&lt;br /&gt;
[http://www.ardumower.de/index.php/de Официальная страница и форум Ardumower]&lt;br /&gt;
[https://www.marotronics.de/ Магазин Ardumower]&lt;/div&gt;</summary>
		<author><name>Unlogic</name></author>	</entry>

	<entry>
		<id>https://wiki.ardumower.de/index.php?title=Odometry_ru&amp;diff=2715</id>
		<title>Odometry ru</title>
		<link rel="alternate" type="text/html" href="https://wiki.ardumower.de/index.php?title=Odometry_ru&amp;diff=2715"/>
				<updated>2015-08-23T13:33:17Z</updated>
		
		<summary type="html">&lt;p&gt;Unlogic: /* Encoder pinout (Ardumower motors) */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Описание =&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery&amp;gt;&lt;br /&gt;
File: odometry.png &lt;br /&gt;
File: ardumower_odometry_sensor.png&lt;br /&gt;
File: ardumower_motor.jpg&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Последняя прошивка Ardumower требует моторные датчики оборотов (энкодеры). &lt;br /&gt;
&lt;br /&gt;
Их использование позволяет рассчитать скорость робота и направление движения робота.&lt;br /&gt;
 &lt;br /&gt;
Алгоритм работает путем подсчета импульсов с датчиков оборотов левого и правого колеса.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
В настоящее время датчики используются для:&lt;br /&gt;
* Для обеспечения прямолинейного движения (чтобы робот не уходил вправо или влево)&lt;br /&gt;
&lt;br /&gt;
= Выводы энкодера (колесные двигатели) =&lt;br /&gt;
&lt;br /&gt;
В Ardumower имеет 2-х канальный кодер с 5 импульсов на один цикл двигателя умножается на передаточное число 1:212, в результате чего 1060 шифратора тактов за один полный шиномонтаж резолюции.&lt;br /&gt;
&lt;br /&gt;
Разводка разъема энкодера:&lt;br /&gt;
 зеленый     ---- GND&lt;br /&gt;
 коричневый  ---- VCC&lt;br /&gt;
 синий       ---- odometry1&lt;br /&gt;
 фиолетовый  ---- odometry2&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Внимание!: В печатных платах версий v0.5/1.2 отсутствуют подтягивающие резисторы. Добавьте из самостоятельно:&lt;br /&gt;
&lt;br /&gt;
 odometry1 --- 4.7k --- 5v&lt;br /&gt;
 odometry2 --- 4.7k --- 5v&lt;br /&gt;
&lt;br /&gt;
= Сигнал от энкодеров =&lt;br /&gt;
&amp;lt;gallery&amp;gt;&lt;br /&gt;
File: ardumower_odometry_encoder.jpg&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 Вперед: pin1 переключает LOW-&amp;gt;HIGH и pin2 = HIGH&lt;br /&gt;
 Назад:  pin1 переключает LOW-&amp;gt;HIGH и pin2 = LOW&lt;br /&gt;
&lt;br /&gt;
= Самодельные экнодеры =&lt;br /&gt;
&amp;lt;gallery&amp;gt;&lt;br /&gt;
File: l50_odometry_sensor.jpg | Ambrogio L50: An encoder wheel of a computer mouse is glued to a slice. The screw of the wheel shaft is unscrewed, and the slice is added. Embedded in two Plexiglas pieces is a photo diode and photo transistor of a light barrier (e.g. LTH 301)&lt;br /&gt;
File: mower_photo_interrupter_right.JPG | Tianchen TC-G158 (right): A light barrier (e.g. LTH 301) is interrupted by a gear-weheel of the motor shaft. ).&lt;br /&gt;
File: Odometry_circuit.jpg | LTH301 circuit&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Подключение ==&lt;br /&gt;
&lt;br /&gt;
 VCC           pinArduino&lt;br /&gt;
 +--13 KOhm----+-------Collector  Emitter---GND&lt;br /&gt;
 +--380 Ohm------------Anode      Kathode---GND&lt;br /&gt;
&lt;br /&gt;
== Расчет расстояния, пройденного каждым колесом ==&lt;br /&gt;
&lt;br /&gt;
При подключении датчиков оборотов мы можем вычислить расстояние и направление движения.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery&amp;gt; &lt;br /&gt;
File: differential_drive.png | При повороте разные колеса проходят разное расстояние&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Расстояние на каждое колесо:&lt;br /&gt;
 left_cm  = ticksLeft  / odometryTicksPerCm&lt;br /&gt;
 right_cm = ticksRight / odometryTicksPerCm&lt;br /&gt;
 &lt;br /&gt;
Направление движения (курс):&lt;br /&gt;
 wheel_theta = (left_cm - right_cm) / odometryWheelBaseCm&lt;br /&gt;
 odometryTheta += wheel_theta&lt;br /&gt;
&lt;br /&gt;
Общее расстояние:&lt;br /&gt;
 avg_cm  = (left_cm + right_cm) / 2.0&lt;br /&gt;
 odometryX += avg_cm * sin(odometryTheta)&lt;br /&gt;
 odometryY += avg_cm * cos(odometryTheta)&lt;br /&gt;
&lt;br /&gt;
== Неточность наземных измерений ==&lt;br /&gt;
Путем сложения (интеграции) показателей движения и скорости, мы можем вычислить расстояние и направление движения. Однако из-за не точного физическое измерения, расстояние и угол ошибки возрастает с каждой итерацией. Это может быть решено путем [http://wiki.ardumower.de/index.php?title=Sensor_fusion обработки сигналов с разных датчиков].&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery&amp;gt;&lt;br /&gt;
File: odometry_plot.jpg | Odometry error&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= Регулятор скорости мотора (ПИД) =&lt;br /&gt;
Скорость двигателей регулируется с помощью программного ПИД-регулятора. Вы можете следить за качеством управления скорости через pfodApp (Plot-&amp;gt;Motor control):&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery&amp;gt;&lt;br /&gt;
  File: Odometry_motor_pid_controller.png&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= Видео =&lt;br /&gt;
Еще нет видео  (функционал в разработке)&lt;/div&gt;</summary>
		<author><name>Unlogic</name></author>	</entry>

	<entry>
		<id>https://wiki.ardumower.de/index.php?title=Odometry_ru&amp;diff=2714</id>
		<title>Odometry ru</title>
		<link rel="alternate" type="text/html" href="https://wiki.ardumower.de/index.php?title=Odometry_ru&amp;diff=2714"/>
				<updated>2015-08-23T13:29:15Z</updated>
		
		<summary type="html">&lt;p&gt;Unlogic: /* Описание */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Описание =&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery&amp;gt;&lt;br /&gt;
File: odometry.png &lt;br /&gt;
File: ardumower_odometry_sensor.png&lt;br /&gt;
File: ardumower_motor.jpg&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Последняя прошивка Ardumower требует моторные датчики оборотов (энкодеры). &lt;br /&gt;
&lt;br /&gt;
Их использование позволяет рассчитать скорость робота и направление движения робота.&lt;br /&gt;
 &lt;br /&gt;
Алгоритм работает путем подсчета импульсов с датчиков оборотов левого и правого колеса.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
В настоящее время датчики используются для:&lt;br /&gt;
* Для обеспечения прямолинейного движения (чтобы робот не уходил вправо или влево)&lt;br /&gt;
&lt;br /&gt;
= Encoder pinout (Ardumower motors) =&lt;br /&gt;
&lt;br /&gt;
The Ardumower has a 2-channel encoder with 5 pulses at one cycle of motor multiplied by gear ratio 1:212, resulting in 1060 encoder ticks per one full tire resolution.&lt;br /&gt;
&lt;br /&gt;
Wiring/pinout of motor encoder connector:&lt;br /&gt;
&lt;br /&gt;
 green  ---- GND&lt;br /&gt;
 brown  ---- VCC&lt;br /&gt;
 blue   ---- odometry1&lt;br /&gt;
 purple ---- odometry2&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
IMPORTANT: PCB v0.5/1.2 are missing pull-ups! You need to add them yourself:&lt;br /&gt;
&lt;br /&gt;
 odometry1 --- 4.7k --- 5v&lt;br /&gt;
 odometry2 --- 4.7k --- 5v&lt;br /&gt;
&lt;br /&gt;
= Сигнал от энкодеров =&lt;br /&gt;
&amp;lt;gallery&amp;gt;&lt;br /&gt;
File: ardumower_odometry_encoder.jpg&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 Вперед: pin1 переключает LOW-&amp;gt;HIGH и pin2 = HIGH&lt;br /&gt;
 Назад:  pin1 переключает LOW-&amp;gt;HIGH и pin2 = LOW&lt;br /&gt;
&lt;br /&gt;
= Самодельные экнодеры =&lt;br /&gt;
&amp;lt;gallery&amp;gt;&lt;br /&gt;
File: l50_odometry_sensor.jpg | Ambrogio L50: An encoder wheel of a computer mouse is glued to a slice. The screw of the wheel shaft is unscrewed, and the slice is added. Embedded in two Plexiglas pieces is a photo diode and photo transistor of a light barrier (e.g. LTH 301)&lt;br /&gt;
File: mower_photo_interrupter_right.JPG | Tianchen TC-G158 (right): A light barrier (e.g. LTH 301) is interrupted by a gear-weheel of the motor shaft. ).&lt;br /&gt;
File: Odometry_circuit.jpg | LTH301 circuit&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Подключение ==&lt;br /&gt;
&lt;br /&gt;
 VCC           pinArduino&lt;br /&gt;
 +--13 KOhm----+-------Collector  Emitter---GND&lt;br /&gt;
 +--380 Ohm------------Anode      Kathode---GND&lt;br /&gt;
&lt;br /&gt;
== Расчет расстояния, пройденного каждым колесом ==&lt;br /&gt;
&lt;br /&gt;
При подключении датчиков оборотов мы можем вычислить расстояние и направление движения.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery&amp;gt; &lt;br /&gt;
File: differential_drive.png | При повороте разные колеса проходят разное расстояние&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Расстояние на каждое колесо:&lt;br /&gt;
 left_cm  = ticksLeft  / odometryTicksPerCm&lt;br /&gt;
 right_cm = ticksRight / odometryTicksPerCm&lt;br /&gt;
 &lt;br /&gt;
Направление движения (курс):&lt;br /&gt;
 wheel_theta = (left_cm - right_cm) / odometryWheelBaseCm&lt;br /&gt;
 odometryTheta += wheel_theta&lt;br /&gt;
&lt;br /&gt;
Общее расстояние:&lt;br /&gt;
 avg_cm  = (left_cm + right_cm) / 2.0&lt;br /&gt;
 odometryX += avg_cm * sin(odometryTheta)&lt;br /&gt;
 odometryY += avg_cm * cos(odometryTheta)&lt;br /&gt;
&lt;br /&gt;
== Неточность наземных измерений ==&lt;br /&gt;
Путем сложения (интеграции) показателей движения и скорости, мы можем вычислить расстояние и направление движения. Однако из-за не точного физическое измерения, расстояние и угол ошибки возрастает с каждой итерацией. Это может быть решено путем [http://wiki.ardumower.de/index.php?title=Sensor_fusion обработки сигналов с разных датчиков].&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery&amp;gt;&lt;br /&gt;
File: odometry_plot.jpg | Odometry error&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= Регулятор скорости мотора (ПИД) =&lt;br /&gt;
Скорость двигателей регулируется с помощью программного ПИД-регулятора. Вы можете следить за качеством управления скорости через pfodApp (Plot-&amp;gt;Motor control):&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery&amp;gt;&lt;br /&gt;
  File: Odometry_motor_pid_controller.png&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= Видео =&lt;br /&gt;
Еще нет видео  (функционал в разработке)&lt;/div&gt;</summary>
		<author><name>Unlogic</name></author>	</entry>

	<entry>
		<id>https://wiki.ardumower.de/index.php?title=Odometry_ru&amp;diff=2713</id>
		<title>Odometry ru</title>
		<link rel="alternate" type="text/html" href="https://wiki.ardumower.de/index.php?title=Odometry_ru&amp;diff=2713"/>
				<updated>2015-08-23T13:29:03Z</updated>
		
		<summary type="html">&lt;p&gt;Unlogic: /* Описание */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Описание =&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery&amp;gt;&lt;br /&gt;
File: odometry.png &lt;br /&gt;
File: ardumower_odometry_sensor.png&lt;br /&gt;
File: ardumower_motor.jpg&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Последняя прошивка Ardumower требует моторные датчики оборотов (энкодеры). &lt;br /&gt;
Их использование позволяет рассчитать скорость робота и направление движения робота. &lt;br /&gt;
Алгоритм работает путем подсчета импульсов с датчиков оборотов левого и правого колеса.&lt;br /&gt;
&lt;br /&gt;
В настоящее время датчики используются для:&lt;br /&gt;
* Для обеспечения прямолинейного движения (чтобы робот не уходил вправо или влево)&lt;br /&gt;
&lt;br /&gt;
= Encoder pinout (Ardumower motors) =&lt;br /&gt;
&lt;br /&gt;
The Ardumower has a 2-channel encoder with 5 pulses at one cycle of motor multiplied by gear ratio 1:212, resulting in 1060 encoder ticks per one full tire resolution.&lt;br /&gt;
&lt;br /&gt;
Wiring/pinout of motor encoder connector:&lt;br /&gt;
&lt;br /&gt;
 green  ---- GND&lt;br /&gt;
 brown  ---- VCC&lt;br /&gt;
 blue   ---- odometry1&lt;br /&gt;
 purple ---- odometry2&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
IMPORTANT: PCB v0.5/1.2 are missing pull-ups! You need to add them yourself:&lt;br /&gt;
&lt;br /&gt;
 odometry1 --- 4.7k --- 5v&lt;br /&gt;
 odometry2 --- 4.7k --- 5v&lt;br /&gt;
&lt;br /&gt;
= Сигнал от энкодеров =&lt;br /&gt;
&amp;lt;gallery&amp;gt;&lt;br /&gt;
File: ardumower_odometry_encoder.jpg&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 Вперед: pin1 переключает LOW-&amp;gt;HIGH и pin2 = HIGH&lt;br /&gt;
 Назад:  pin1 переключает LOW-&amp;gt;HIGH и pin2 = LOW&lt;br /&gt;
&lt;br /&gt;
= Самодельные экнодеры =&lt;br /&gt;
&amp;lt;gallery&amp;gt;&lt;br /&gt;
File: l50_odometry_sensor.jpg | Ambrogio L50: An encoder wheel of a computer mouse is glued to a slice. The screw of the wheel shaft is unscrewed, and the slice is added. Embedded in two Plexiglas pieces is a photo diode and photo transistor of a light barrier (e.g. LTH 301)&lt;br /&gt;
File: mower_photo_interrupter_right.JPG | Tianchen TC-G158 (right): A light barrier (e.g. LTH 301) is interrupted by a gear-weheel of the motor shaft. ).&lt;br /&gt;
File: Odometry_circuit.jpg | LTH301 circuit&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Подключение ==&lt;br /&gt;
&lt;br /&gt;
 VCC           pinArduino&lt;br /&gt;
 +--13 KOhm----+-------Collector  Emitter---GND&lt;br /&gt;
 +--380 Ohm------------Anode      Kathode---GND&lt;br /&gt;
&lt;br /&gt;
== Расчет расстояния, пройденного каждым колесом ==&lt;br /&gt;
&lt;br /&gt;
При подключении датчиков оборотов мы можем вычислить расстояние и направление движения.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery&amp;gt; &lt;br /&gt;
File: differential_drive.png | При повороте разные колеса проходят разное расстояние&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Расстояние на каждое колесо:&lt;br /&gt;
 left_cm  = ticksLeft  / odometryTicksPerCm&lt;br /&gt;
 right_cm = ticksRight / odometryTicksPerCm&lt;br /&gt;
 &lt;br /&gt;
Направление движения (курс):&lt;br /&gt;
 wheel_theta = (left_cm - right_cm) / odometryWheelBaseCm&lt;br /&gt;
 odometryTheta += wheel_theta&lt;br /&gt;
&lt;br /&gt;
Общее расстояние:&lt;br /&gt;
 avg_cm  = (left_cm + right_cm) / 2.0&lt;br /&gt;
 odometryX += avg_cm * sin(odometryTheta)&lt;br /&gt;
 odometryY += avg_cm * cos(odometryTheta)&lt;br /&gt;
&lt;br /&gt;
== Неточность наземных измерений ==&lt;br /&gt;
Путем сложения (интеграции) показателей движения и скорости, мы можем вычислить расстояние и направление движения. Однако из-за не точного физическое измерения, расстояние и угол ошибки возрастает с каждой итерацией. Это может быть решено путем [http://wiki.ardumower.de/index.php?title=Sensor_fusion обработки сигналов с разных датчиков].&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery&amp;gt;&lt;br /&gt;
File: odometry_plot.jpg | Odometry error&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= Регулятор скорости мотора (ПИД) =&lt;br /&gt;
Скорость двигателей регулируется с помощью программного ПИД-регулятора. Вы можете следить за качеством управления скорости через pfodApp (Plot-&amp;gt;Motor control):&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery&amp;gt;&lt;br /&gt;
  File: Odometry_motor_pid_controller.png&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= Видео =&lt;br /&gt;
Еще нет видео  (функционал в разработке)&lt;/div&gt;</summary>
		<author><name>Unlogic</name></author>	</entry>

	<entry>
		<id>https://wiki.ardumower.de/index.php?title=Odometry_ru&amp;diff=2712</id>
		<title>Odometry ru</title>
		<link rel="alternate" type="text/html" href="https://wiki.ardumower.de/index.php?title=Odometry_ru&amp;diff=2712"/>
				<updated>2015-08-23T13:28:46Z</updated>
		
		<summary type="html">&lt;p&gt;Unlogic: /* Abstract */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Описание =&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery&amp;gt;&lt;br /&gt;
File: odometry.png &lt;br /&gt;
File: ardumower_odometry_sensor.png&lt;br /&gt;
File: ardumower_motor.jpg&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Последняя прошивка Ardumower требует моторные датчики оборотов (энкодеры). Их использование позволяет рассчитать скорость робота и направление движения робота. Алгоритм работает путем подсчета импульсов с датчиков оборотов левого и правого колеса.&lt;br /&gt;
&lt;br /&gt;
В настоящее время датчики используются для:&lt;br /&gt;
* Для обеспечения прямолинейного движения (чтобы робот не уходил вправо или влево)&lt;br /&gt;
&lt;br /&gt;
= Encoder pinout (Ardumower motors) =&lt;br /&gt;
&lt;br /&gt;
The Ardumower has a 2-channel encoder with 5 pulses at one cycle of motor multiplied by gear ratio 1:212, resulting in 1060 encoder ticks per one full tire resolution.&lt;br /&gt;
&lt;br /&gt;
Wiring/pinout of motor encoder connector:&lt;br /&gt;
&lt;br /&gt;
 green  ---- GND&lt;br /&gt;
 brown  ---- VCC&lt;br /&gt;
 blue   ---- odometry1&lt;br /&gt;
 purple ---- odometry2&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
IMPORTANT: PCB v0.5/1.2 are missing pull-ups! You need to add them yourself:&lt;br /&gt;
&lt;br /&gt;
 odometry1 --- 4.7k --- 5v&lt;br /&gt;
 odometry2 --- 4.7k --- 5v&lt;br /&gt;
&lt;br /&gt;
= Сигнал от энкодеров =&lt;br /&gt;
&amp;lt;gallery&amp;gt;&lt;br /&gt;
File: ardumower_odometry_encoder.jpg&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 Вперед: pin1 переключает LOW-&amp;gt;HIGH и pin2 = HIGH&lt;br /&gt;
 Назад:  pin1 переключает LOW-&amp;gt;HIGH и pin2 = LOW&lt;br /&gt;
&lt;br /&gt;
= Самодельные экнодеры =&lt;br /&gt;
&amp;lt;gallery&amp;gt;&lt;br /&gt;
File: l50_odometry_sensor.jpg | Ambrogio L50: An encoder wheel of a computer mouse is glued to a slice. The screw of the wheel shaft is unscrewed, and the slice is added. Embedded in two Plexiglas pieces is a photo diode and photo transistor of a light barrier (e.g. LTH 301)&lt;br /&gt;
File: mower_photo_interrupter_right.JPG | Tianchen TC-G158 (right): A light barrier (e.g. LTH 301) is interrupted by a gear-weheel of the motor shaft. ).&lt;br /&gt;
File: Odometry_circuit.jpg | LTH301 circuit&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Подключение ==&lt;br /&gt;
&lt;br /&gt;
 VCC           pinArduino&lt;br /&gt;
 +--13 KOhm----+-------Collector  Emitter---GND&lt;br /&gt;
 +--380 Ohm------------Anode      Kathode---GND&lt;br /&gt;
&lt;br /&gt;
== Расчет расстояния, пройденного каждым колесом ==&lt;br /&gt;
&lt;br /&gt;
При подключении датчиков оборотов мы можем вычислить расстояние и направление движения.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery&amp;gt; &lt;br /&gt;
File: differential_drive.png | При повороте разные колеса проходят разное расстояние&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Расстояние на каждое колесо:&lt;br /&gt;
 left_cm  = ticksLeft  / odometryTicksPerCm&lt;br /&gt;
 right_cm = ticksRight / odometryTicksPerCm&lt;br /&gt;
 &lt;br /&gt;
Направление движения (курс):&lt;br /&gt;
 wheel_theta = (left_cm - right_cm) / odometryWheelBaseCm&lt;br /&gt;
 odometryTheta += wheel_theta&lt;br /&gt;
&lt;br /&gt;
Общее расстояние:&lt;br /&gt;
 avg_cm  = (left_cm + right_cm) / 2.0&lt;br /&gt;
 odometryX += avg_cm * sin(odometryTheta)&lt;br /&gt;
 odometryY += avg_cm * cos(odometryTheta)&lt;br /&gt;
&lt;br /&gt;
== Неточность наземных измерений ==&lt;br /&gt;
Путем сложения (интеграции) показателей движения и скорости, мы можем вычислить расстояние и направление движения. Однако из-за не точного физическое измерения, расстояние и угол ошибки возрастает с каждой итерацией. Это может быть решено путем [http://wiki.ardumower.de/index.php?title=Sensor_fusion обработки сигналов с разных датчиков].&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery&amp;gt;&lt;br /&gt;
File: odometry_plot.jpg | Odometry error&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= Регулятор скорости мотора (ПИД) =&lt;br /&gt;
Скорость двигателей регулируется с помощью программного ПИД-регулятора. Вы можете следить за качеством управления скорости через pfodApp (Plot-&amp;gt;Motor control):&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery&amp;gt;&lt;br /&gt;
  File: Odometry_motor_pid_controller.png&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= Видео =&lt;br /&gt;
Еще нет видео  (функционал в разработке)&lt;/div&gt;</summary>
		<author><name>Unlogic</name></author>	</entry>

	<entry>
		<id>https://wiki.ardumower.de/index.php?title=Odometry_ru&amp;diff=2711</id>
		<title>Odometry ru</title>
		<link rel="alternate" type="text/html" href="https://wiki.ardumower.de/index.php?title=Odometry_ru&amp;diff=2711"/>
				<updated>2015-08-23T13:23:36Z</updated>
		
		<summary type="html">&lt;p&gt;Unlogic: /* Signal of odometry encoders */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Abstract =&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery&amp;gt;&lt;br /&gt;
File: odometry.png &lt;br /&gt;
File: ardumower_odometry_sensor.png&lt;br /&gt;
File: ardumower_motor.jpg&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Latest Ardumower code requires motor encoders for odometry. Using odometry you can calculate the robot's speed and the short-term position of the robot. This works by counting the rotations of left and right wheel (motor encoders - required by latest Ardumower software).&lt;br /&gt;
&lt;br /&gt;
Currently, odometry is used:&lt;br /&gt;
* to ensure the robot left and right wheel are turning the same speed (in forward direction)&lt;br /&gt;
&lt;br /&gt;
= Encoder pinout (Ardumower motors) =&lt;br /&gt;
&lt;br /&gt;
The Ardumower has a 2-channel encoder with 5 pulses at one cycle of motor multiplied by gear ratio 1:212, resulting in 1060 encoder ticks per one full tire resolution.&lt;br /&gt;
&lt;br /&gt;
Wiring/pinout of motor encoder connector:&lt;br /&gt;
&lt;br /&gt;
 green  ---- GND&lt;br /&gt;
 brown  ---- VCC&lt;br /&gt;
 blue   ---- odometry1&lt;br /&gt;
 purple ---- odometry2&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
IMPORTANT: PCB v0.5/1.2 are missing pull-ups! You need to add them yourself:&lt;br /&gt;
&lt;br /&gt;
 odometry1 --- 4.7k --- 5v&lt;br /&gt;
 odometry2 --- 4.7k --- 5v&lt;br /&gt;
&lt;br /&gt;
= Сигнал от энкодеров =&lt;br /&gt;
&amp;lt;gallery&amp;gt;&lt;br /&gt;
File: ardumower_odometry_encoder.jpg&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 Вперед: pin1 переключает LOW-&amp;gt;HIGH и pin2 = HIGH&lt;br /&gt;
 Назад:  pin1 переключает LOW-&amp;gt;HIGH и pin2 = LOW&lt;br /&gt;
&lt;br /&gt;
= Самодельные экнодеры =&lt;br /&gt;
&amp;lt;gallery&amp;gt;&lt;br /&gt;
File: l50_odometry_sensor.jpg | Ambrogio L50: An encoder wheel of a computer mouse is glued to a slice. The screw of the wheel shaft is unscrewed, and the slice is added. Embedded in two Plexiglas pieces is a photo diode and photo transistor of a light barrier (e.g. LTH 301)&lt;br /&gt;
File: mower_photo_interrupter_right.JPG | Tianchen TC-G158 (right): A light barrier (e.g. LTH 301) is interrupted by a gear-weheel of the motor shaft. ).&lt;br /&gt;
File: Odometry_circuit.jpg | LTH301 circuit&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Подключение ==&lt;br /&gt;
&lt;br /&gt;
 VCC           pinArduino&lt;br /&gt;
 +--13 KOhm----+-------Collector  Emitter---GND&lt;br /&gt;
 +--380 Ohm------------Anode      Kathode---GND&lt;br /&gt;
&lt;br /&gt;
== Расчет расстояния, пройденного каждым колесом ==&lt;br /&gt;
&lt;br /&gt;
При подключении датчиков оборотов мы можем вычислить расстояние и направление движения.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery&amp;gt; &lt;br /&gt;
File: differential_drive.png | При повороте разные колеса проходят разное расстояние&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Расстояние на каждое колесо:&lt;br /&gt;
 left_cm  = ticksLeft  / odometryTicksPerCm&lt;br /&gt;
 right_cm = ticksRight / odometryTicksPerCm&lt;br /&gt;
 &lt;br /&gt;
Направление движения (курс):&lt;br /&gt;
 wheel_theta = (left_cm - right_cm) / odometryWheelBaseCm&lt;br /&gt;
 odometryTheta += wheel_theta&lt;br /&gt;
&lt;br /&gt;
Общее расстояние:&lt;br /&gt;
 avg_cm  = (left_cm + right_cm) / 2.0&lt;br /&gt;
 odometryX += avg_cm * sin(odometryTheta)&lt;br /&gt;
 odometryY += avg_cm * cos(odometryTheta)&lt;br /&gt;
&lt;br /&gt;
== Неточность наземных измерений ==&lt;br /&gt;
Путем сложения (интеграции) показателей движения и скорости, мы можем вычислить расстояние и направление движения. Однако из-за не точного физическое измерения, расстояние и угол ошибки возрастает с каждой итерацией. Это может быть решено путем [http://wiki.ardumower.de/index.php?title=Sensor_fusion обработки сигналов с разных датчиков].&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery&amp;gt;&lt;br /&gt;
File: odometry_plot.jpg | Odometry error&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= Регулятор скорости мотора (ПИД) =&lt;br /&gt;
Скорость двигателей регулируется с помощью программного ПИД-регулятора. Вы можете следить за качеством управления скорости через pfodApp (Plot-&amp;gt;Motor control):&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery&amp;gt;&lt;br /&gt;
  File: Odometry_motor_pid_controller.png&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= Видео =&lt;br /&gt;
Еще нет видео  (функционал в разработке)&lt;/div&gt;</summary>
		<author><name>Unlogic</name></author>	</entry>

	<entry>
		<id>https://wiki.ardumower.de/index.php?title=Odometry_ru&amp;diff=2710</id>
		<title>Odometry ru</title>
		<link rel="alternate" type="text/html" href="https://wiki.ardumower.de/index.php?title=Odometry_ru&amp;diff=2710"/>
				<updated>2015-08-23T13:21:42Z</updated>
		
		<summary type="html">&lt;p&gt;Unlogic: /* Do-It-Yourself encoders */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Abstract =&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery&amp;gt;&lt;br /&gt;
File: odometry.png &lt;br /&gt;
File: ardumower_odometry_sensor.png&lt;br /&gt;
File: ardumower_motor.jpg&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Latest Ardumower code requires motor encoders for odometry. Using odometry you can calculate the robot's speed and the short-term position of the robot. This works by counting the rotations of left and right wheel (motor encoders - required by latest Ardumower software).&lt;br /&gt;
&lt;br /&gt;
Currently, odometry is used:&lt;br /&gt;
* to ensure the robot left and right wheel are turning the same speed (in forward direction)&lt;br /&gt;
&lt;br /&gt;
= Encoder pinout (Ardumower motors) =&lt;br /&gt;
&lt;br /&gt;
The Ardumower has a 2-channel encoder with 5 pulses at one cycle of motor multiplied by gear ratio 1:212, resulting in 1060 encoder ticks per one full tire resolution.&lt;br /&gt;
&lt;br /&gt;
Wiring/pinout of motor encoder connector:&lt;br /&gt;
&lt;br /&gt;
 green  ---- GND&lt;br /&gt;
 brown  ---- VCC&lt;br /&gt;
 blue   ---- odometry1&lt;br /&gt;
 purple ---- odometry2&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
IMPORTANT: PCB v0.5/1.2 are missing pull-ups! You need to add them yourself:&lt;br /&gt;
&lt;br /&gt;
 odometry1 --- 4.7k --- 5v&lt;br /&gt;
 odometry2 --- 4.7k --- 5v&lt;br /&gt;
&lt;br /&gt;
= Signal of odometry encoders =&lt;br /&gt;
&amp;lt;gallery&amp;gt;&lt;br /&gt;
File: ardumower_odometry_encoder.jpg&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 Forward: pin1 makes LOW-&amp;gt;HIGH transition and pin2 = HIGH&lt;br /&gt;
 Reverse: pin1 makes LOW-&amp;gt;HIGH transition and pin2 = LOW&lt;br /&gt;
&lt;br /&gt;
= Самодельные экнодеры =&lt;br /&gt;
&amp;lt;gallery&amp;gt;&lt;br /&gt;
File: l50_odometry_sensor.jpg | Ambrogio L50: An encoder wheel of a computer mouse is glued to a slice. The screw of the wheel shaft is unscrewed, and the slice is added. Embedded in two Plexiglas pieces is a photo diode and photo transistor of a light barrier (e.g. LTH 301)&lt;br /&gt;
File: mower_photo_interrupter_right.JPG | Tianchen TC-G158 (right): A light barrier (e.g. LTH 301) is interrupted by a gear-weheel of the motor shaft. ).&lt;br /&gt;
File: Odometry_circuit.jpg | LTH301 circuit&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Подключение ==&lt;br /&gt;
&lt;br /&gt;
 VCC           pinArduino&lt;br /&gt;
 +--13 KOhm----+-------Collector  Emitter---GND&lt;br /&gt;
 +--380 Ohm------------Anode      Kathode---GND&lt;br /&gt;
&lt;br /&gt;
== Расчет расстояния, пройденного каждым колесом ==&lt;br /&gt;
&lt;br /&gt;
При подключении датчиков оборотов мы можем вычислить расстояние и направление движения.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery&amp;gt; &lt;br /&gt;
File: differential_drive.png | При повороте разные колеса проходят разное расстояние&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Расстояние на каждое колесо:&lt;br /&gt;
 left_cm  = ticksLeft  / odometryTicksPerCm&lt;br /&gt;
 right_cm = ticksRight / odometryTicksPerCm&lt;br /&gt;
 &lt;br /&gt;
Направление движения (курс):&lt;br /&gt;
 wheel_theta = (left_cm - right_cm) / odometryWheelBaseCm&lt;br /&gt;
 odometryTheta += wheel_theta&lt;br /&gt;
&lt;br /&gt;
Общее расстояние:&lt;br /&gt;
 avg_cm  = (left_cm + right_cm) / 2.0&lt;br /&gt;
 odometryX += avg_cm * sin(odometryTheta)&lt;br /&gt;
 odometryY += avg_cm * cos(odometryTheta)&lt;br /&gt;
&lt;br /&gt;
== Неточность наземных измерений ==&lt;br /&gt;
Путем сложения (интеграции) показателей движения и скорости, мы можем вычислить расстояние и направление движения. Однако из-за не точного физическое измерения, расстояние и угол ошибки возрастает с каждой итерацией. Это может быть решено путем [http://wiki.ardumower.de/index.php?title=Sensor_fusion обработки сигналов с разных датчиков].&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery&amp;gt;&lt;br /&gt;
File: odometry_plot.jpg | Odometry error&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= Регулятор скорости мотора (ПИД) =&lt;br /&gt;
Скорость двигателей регулируется с помощью программного ПИД-регулятора. Вы можете следить за качеством управления скорости через pfodApp (Plot-&amp;gt;Motor control):&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery&amp;gt;&lt;br /&gt;
  File: Odometry_motor_pid_controller.png&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= Видео =&lt;br /&gt;
Еще нет видео  (функционал в разработке)&lt;/div&gt;</summary>
		<author><name>Unlogic</name></author>	</entry>

	<entry>
		<id>https://wiki.ardumower.de/index.php?title=Odometry_ru&amp;diff=2709</id>
		<title>Odometry ru</title>
		<link rel="alternate" type="text/html" href="https://wiki.ardumower.de/index.php?title=Odometry_ru&amp;diff=2709"/>
				<updated>2015-08-23T13:21:03Z</updated>
		
		<summary type="html">&lt;p&gt;Unlogic: /* Circuit */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Abstract =&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery&amp;gt;&lt;br /&gt;
File: odometry.png &lt;br /&gt;
File: ardumower_odometry_sensor.png&lt;br /&gt;
File: ardumower_motor.jpg&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Latest Ardumower code requires motor encoders for odometry. Using odometry you can calculate the robot's speed and the short-term position of the robot. This works by counting the rotations of left and right wheel (motor encoders - required by latest Ardumower software).&lt;br /&gt;
&lt;br /&gt;
Currently, odometry is used:&lt;br /&gt;
* to ensure the robot left and right wheel are turning the same speed (in forward direction)&lt;br /&gt;
&lt;br /&gt;
= Encoder pinout (Ardumower motors) =&lt;br /&gt;
&lt;br /&gt;
The Ardumower has a 2-channel encoder with 5 pulses at one cycle of motor multiplied by gear ratio 1:212, resulting in 1060 encoder ticks per one full tire resolution.&lt;br /&gt;
&lt;br /&gt;
Wiring/pinout of motor encoder connector:&lt;br /&gt;
&lt;br /&gt;
 green  ---- GND&lt;br /&gt;
 brown  ---- VCC&lt;br /&gt;
 blue   ---- odometry1&lt;br /&gt;
 purple ---- odometry2&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
IMPORTANT: PCB v0.5/1.2 are missing pull-ups! You need to add them yourself:&lt;br /&gt;
&lt;br /&gt;
 odometry1 --- 4.7k --- 5v&lt;br /&gt;
 odometry2 --- 4.7k --- 5v&lt;br /&gt;
&lt;br /&gt;
= Signal of odometry encoders =&lt;br /&gt;
&amp;lt;gallery&amp;gt;&lt;br /&gt;
File: ardumower_odometry_encoder.jpg&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 Forward: pin1 makes LOW-&amp;gt;HIGH transition and pin2 = HIGH&lt;br /&gt;
 Reverse: pin1 makes LOW-&amp;gt;HIGH transition and pin2 = LOW&lt;br /&gt;
&lt;br /&gt;
= Do-It-Yourself encoders =&lt;br /&gt;
&amp;lt;gallery&amp;gt;&lt;br /&gt;
File: l50_odometry_sensor.jpg | Ambrogio L50: An encoder wheel of a computer mouse is glued to a slice. The screw of the wheel shaft is unscrewed, and the slice is added. Embedded in two Plexiglas pieces is a photo diode and photo transistor of a light barrier (e.g. LTH 301)&lt;br /&gt;
File: mower_photo_interrupter_right.JPG | Tianchen TC-G158 (right): A light barrier (e.g. LTH 301) is interrupted by a gear-weheel of the motor shaft. ).&lt;br /&gt;
File: Odometry_circuit.jpg | LTH301 circuit&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Подключение ==&lt;br /&gt;
&lt;br /&gt;
 VCC           pinArduino&lt;br /&gt;
 +--13 KOhm----+-------Collector  Emitter---GND&lt;br /&gt;
 +--380 Ohm------------Anode      Kathode---GND&lt;br /&gt;
&lt;br /&gt;
== Расчет расстояния, пройденного каждым колесом ==&lt;br /&gt;
&lt;br /&gt;
При подключении датчиков оборотов мы можем вычислить расстояние и направление движения.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery&amp;gt; &lt;br /&gt;
File: differential_drive.png | При повороте разные колеса проходят разное расстояние&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Расстояние на каждое колесо:&lt;br /&gt;
 left_cm  = ticksLeft  / odometryTicksPerCm&lt;br /&gt;
 right_cm = ticksRight / odometryTicksPerCm&lt;br /&gt;
 &lt;br /&gt;
Направление движения (курс):&lt;br /&gt;
 wheel_theta = (left_cm - right_cm) / odometryWheelBaseCm&lt;br /&gt;
 odometryTheta += wheel_theta&lt;br /&gt;
&lt;br /&gt;
Общее расстояние:&lt;br /&gt;
 avg_cm  = (left_cm + right_cm) / 2.0&lt;br /&gt;
 odometryX += avg_cm * sin(odometryTheta)&lt;br /&gt;
 odometryY += avg_cm * cos(odometryTheta)&lt;br /&gt;
&lt;br /&gt;
== Неточность наземных измерений ==&lt;br /&gt;
Путем сложения (интеграции) показателей движения и скорости, мы можем вычислить расстояние и направление движения. Однако из-за не точного физическое измерения, расстояние и угол ошибки возрастает с каждой итерацией. Это может быть решено путем [http://wiki.ardumower.de/index.php?title=Sensor_fusion обработки сигналов с разных датчиков].&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery&amp;gt;&lt;br /&gt;
File: odometry_plot.jpg | Odometry error&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= Регулятор скорости мотора (ПИД) =&lt;br /&gt;
Скорость двигателей регулируется с помощью программного ПИД-регулятора. Вы можете следить за качеством управления скорости через pfodApp (Plot-&amp;gt;Motor control):&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery&amp;gt;&lt;br /&gt;
  File: Odometry_motor_pid_controller.png&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= Видео =&lt;br /&gt;
Еще нет видео  (функционал в разработке)&lt;/div&gt;</summary>
		<author><name>Unlogic</name></author>	</entry>

	<entry>
		<id>https://wiki.ardumower.de/index.php?title=Odometry_ru&amp;diff=2708</id>
		<title>Odometry ru</title>
		<link rel="alternate" type="text/html" href="https://wiki.ardumower.de/index.php?title=Odometry_ru&amp;diff=2708"/>
				<updated>2015-08-23T13:16:54Z</updated>
		
		<summary type="html">&lt;p&gt;Unlogic: /* Differential drive */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Abstract =&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery&amp;gt;&lt;br /&gt;
File: odometry.png &lt;br /&gt;
File: ardumower_odometry_sensor.png&lt;br /&gt;
File: ardumower_motor.jpg&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Latest Ardumower code requires motor encoders for odometry. Using odometry you can calculate the robot's speed and the short-term position of the robot. This works by counting the rotations of left and right wheel (motor encoders - required by latest Ardumower software).&lt;br /&gt;
&lt;br /&gt;
Currently, odometry is used:&lt;br /&gt;
* to ensure the robot left and right wheel are turning the same speed (in forward direction)&lt;br /&gt;
&lt;br /&gt;
= Encoder pinout (Ardumower motors) =&lt;br /&gt;
&lt;br /&gt;
The Ardumower has a 2-channel encoder with 5 pulses at one cycle of motor multiplied by gear ratio 1:212, resulting in 1060 encoder ticks per one full tire resolution.&lt;br /&gt;
&lt;br /&gt;
Wiring/pinout of motor encoder connector:&lt;br /&gt;
&lt;br /&gt;
 green  ---- GND&lt;br /&gt;
 brown  ---- VCC&lt;br /&gt;
 blue   ---- odometry1&lt;br /&gt;
 purple ---- odometry2&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
IMPORTANT: PCB v0.5/1.2 are missing pull-ups! You need to add them yourself:&lt;br /&gt;
&lt;br /&gt;
 odometry1 --- 4.7k --- 5v&lt;br /&gt;
 odometry2 --- 4.7k --- 5v&lt;br /&gt;
&lt;br /&gt;
= Signal of odometry encoders =&lt;br /&gt;
&amp;lt;gallery&amp;gt;&lt;br /&gt;
File: ardumower_odometry_encoder.jpg&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 Forward: pin1 makes LOW-&amp;gt;HIGH transition and pin2 = HIGH&lt;br /&gt;
 Reverse: pin1 makes LOW-&amp;gt;HIGH transition and pin2 = LOW&lt;br /&gt;
&lt;br /&gt;
= Do-It-Yourself encoders =&lt;br /&gt;
&amp;lt;gallery&amp;gt;&lt;br /&gt;
File: l50_odometry_sensor.jpg | Ambrogio L50: An encoder wheel of a computer mouse is glued to a slice. The screw of the wheel shaft is unscrewed, and the slice is added. Embedded in two Plexiglas pieces is a photo diode and photo transistor of a light barrier (e.g. LTH 301)&lt;br /&gt;
File: mower_photo_interrupter_right.JPG | Tianchen TC-G158 (right): A light barrier (e.g. LTH 301) is interrupted by a gear-weheel of the motor shaft. ).&lt;br /&gt;
File: Odometry_circuit.jpg | LTH301 circuit&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Circuit ==&lt;br /&gt;
&lt;br /&gt;
 VCC           pinArduino&lt;br /&gt;
 +--13 KOhm----+-------Collector  Emitter---GND&lt;br /&gt;
 +--380 Ohm------------Anode      Kathode---GND&lt;br /&gt;
&lt;br /&gt;
== Расчет расстояния, пройденного каждым колесом ==&lt;br /&gt;
&lt;br /&gt;
При подключении датчиков оборотов мы можем вычислить расстояние и направление движения.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery&amp;gt; &lt;br /&gt;
File: differential_drive.png | При повороте разные колеса проходят разное расстояние&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Расстояние на каждое колесо:&lt;br /&gt;
 left_cm  = ticksLeft  / odometryTicksPerCm&lt;br /&gt;
 right_cm = ticksRight / odometryTicksPerCm&lt;br /&gt;
 &lt;br /&gt;
Направление движения (курс):&lt;br /&gt;
 wheel_theta = (left_cm - right_cm) / odometryWheelBaseCm&lt;br /&gt;
 odometryTheta += wheel_theta&lt;br /&gt;
&lt;br /&gt;
Общее расстояние:&lt;br /&gt;
 avg_cm  = (left_cm + right_cm) / 2.0&lt;br /&gt;
 odometryX += avg_cm * sin(odometryTheta)&lt;br /&gt;
 odometryY += avg_cm * cos(odometryTheta)&lt;br /&gt;
&lt;br /&gt;
== Неточность наземных измерений ==&lt;br /&gt;
Путем сложения (интеграции) показателей движения и скорости, мы можем вычислить расстояние и направление движения. Однако из-за не точного физическое измерения, расстояние и угол ошибки возрастает с каждой итерацией. Это может быть решено путем [http://wiki.ardumower.de/index.php?title=Sensor_fusion обработки сигналов с разных датчиков].&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery&amp;gt;&lt;br /&gt;
File: odometry_plot.jpg | Odometry error&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= Регулятор скорости мотора (ПИД) =&lt;br /&gt;
Скорость двигателей регулируется с помощью программного ПИД-регулятора. Вы можете следить за качеством управления скорости через pfodApp (Plot-&amp;gt;Motor control):&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery&amp;gt;&lt;br /&gt;
  File: Odometry_motor_pid_controller.png&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= Видео =&lt;br /&gt;
Еще нет видео  (функционал в разработке)&lt;/div&gt;</summary>
		<author><name>Unlogic</name></author>	</entry>

	<entry>
		<id>https://wiki.ardumower.de/index.php?title=Odometry_ru&amp;diff=2707</id>
		<title>Odometry ru</title>
		<link rel="alternate" type="text/html" href="https://wiki.ardumower.de/index.php?title=Odometry_ru&amp;diff=2707"/>
				<updated>2015-08-23T13:13:10Z</updated>
		
		<summary type="html">&lt;p&gt;Unlogic: /* Ground measurement error */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Abstract =&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery&amp;gt;&lt;br /&gt;
File: odometry.png &lt;br /&gt;
File: ardumower_odometry_sensor.png&lt;br /&gt;
File: ardumower_motor.jpg&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Latest Ardumower code requires motor encoders for odometry. Using odometry you can calculate the robot's speed and the short-term position of the robot. This works by counting the rotations of left and right wheel (motor encoders - required by latest Ardumower software).&lt;br /&gt;
&lt;br /&gt;
Currently, odometry is used:&lt;br /&gt;
* to ensure the robot left and right wheel are turning the same speed (in forward direction)&lt;br /&gt;
&lt;br /&gt;
= Encoder pinout (Ardumower motors) =&lt;br /&gt;
&lt;br /&gt;
The Ardumower has a 2-channel encoder with 5 pulses at one cycle of motor multiplied by gear ratio 1:212, resulting in 1060 encoder ticks per one full tire resolution.&lt;br /&gt;
&lt;br /&gt;
Wiring/pinout of motor encoder connector:&lt;br /&gt;
&lt;br /&gt;
 green  ---- GND&lt;br /&gt;
 brown  ---- VCC&lt;br /&gt;
 blue   ---- odometry1&lt;br /&gt;
 purple ---- odometry2&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
IMPORTANT: PCB v0.5/1.2 are missing pull-ups! You need to add them yourself:&lt;br /&gt;
&lt;br /&gt;
 odometry1 --- 4.7k --- 5v&lt;br /&gt;
 odometry2 --- 4.7k --- 5v&lt;br /&gt;
&lt;br /&gt;
= Signal of odometry encoders =&lt;br /&gt;
&amp;lt;gallery&amp;gt;&lt;br /&gt;
File: ardumower_odometry_encoder.jpg&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 Forward: pin1 makes LOW-&amp;gt;HIGH transition and pin2 = HIGH&lt;br /&gt;
 Reverse: pin1 makes LOW-&amp;gt;HIGH transition and pin2 = LOW&lt;br /&gt;
&lt;br /&gt;
= Do-It-Yourself encoders =&lt;br /&gt;
&amp;lt;gallery&amp;gt;&lt;br /&gt;
File: l50_odometry_sensor.jpg | Ambrogio L50: An encoder wheel of a computer mouse is glued to a slice. The screw of the wheel shaft is unscrewed, and the slice is added. Embedded in two Plexiglas pieces is a photo diode and photo transistor of a light barrier (e.g. LTH 301)&lt;br /&gt;
File: mower_photo_interrupter_right.JPG | Tianchen TC-G158 (right): A light barrier (e.g. LTH 301) is interrupted by a gear-weheel of the motor shaft. ).&lt;br /&gt;
File: Odometry_circuit.jpg | LTH301 circuit&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Circuit ==&lt;br /&gt;
&lt;br /&gt;
 VCC           pinArduino&lt;br /&gt;
 +--13 KOhm----+-------Collector  Emitter---GND&lt;br /&gt;
 +--380 Ohm------------Anode      Kathode---GND&lt;br /&gt;
&lt;br /&gt;
== Differential drive ==&lt;br /&gt;
By adding (integrating) Odometry speed, we can calculate distance and heading. &lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery&amp;gt; &lt;br /&gt;
File: differential_drive.png | Differential drive&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Distance per wheel:&lt;br /&gt;
 left_cm  = ticksLeft  / odometryTicksPerCm&lt;br /&gt;
 right_cm = ticksRight / odometryTicksPerCm&lt;br /&gt;
 &lt;br /&gt;
Heading:&lt;br /&gt;
 wheel_theta = (left_cm - right_cm) / odometryWheelBaseCm&lt;br /&gt;
 odometryTheta += wheel_theta&lt;br /&gt;
&lt;br /&gt;
Overall distance:&lt;br /&gt;
 avg_cm  = (left_cm + right_cm) / 2.0&lt;br /&gt;
 odometryX += avg_cm * sin(odometryTheta)&lt;br /&gt;
 odometryY += avg_cm * cos(odometryTheta)&lt;br /&gt;
&lt;br /&gt;
== Неточность наземных измерений ==&lt;br /&gt;
Путем сложения (интеграции) показателей движения и скорости, мы можем вычислить расстояние и направление движения. Однако из-за не точного физическое измерения, расстояние и угол ошибки возрастает с каждой итерацией. Это может быть решено путем [http://wiki.ardumower.de/index.php?title=Sensor_fusion обработки сигналов с разных датчиков].&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery&amp;gt;&lt;br /&gt;
File: odometry_plot.jpg | Odometry error&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= Регулятор скорости мотора (ПИД) =&lt;br /&gt;
Скорость двигателей регулируется с помощью программного ПИД-регулятора. Вы можете следить за качеством управления скорости через pfodApp (Plot-&amp;gt;Motor control):&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery&amp;gt;&lt;br /&gt;
  File: Odometry_motor_pid_controller.png&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= Видео =&lt;br /&gt;
Еще нет видео  (функционал в разработке)&lt;/div&gt;</summary>
		<author><name>Unlogic</name></author>	</entry>

	<entry>
		<id>https://wiki.ardumower.de/index.php?title=Odometry_ru&amp;diff=2706</id>
		<title>Odometry ru</title>
		<link rel="alternate" type="text/html" href="https://wiki.ardumower.de/index.php?title=Odometry_ru&amp;diff=2706"/>
				<updated>2015-08-23T13:08:36Z</updated>
		
		<summary type="html">&lt;p&gt;Unlogic: /* Motor controller (PID) */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Abstract =&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery&amp;gt;&lt;br /&gt;
File: odometry.png &lt;br /&gt;
File: ardumower_odometry_sensor.png&lt;br /&gt;
File: ardumower_motor.jpg&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Latest Ardumower code requires motor encoders for odometry. Using odometry you can calculate the robot's speed and the short-term position of the robot. This works by counting the rotations of left and right wheel (motor encoders - required by latest Ardumower software).&lt;br /&gt;
&lt;br /&gt;
Currently, odometry is used:&lt;br /&gt;
* to ensure the robot left and right wheel are turning the same speed (in forward direction)&lt;br /&gt;
&lt;br /&gt;
= Encoder pinout (Ardumower motors) =&lt;br /&gt;
&lt;br /&gt;
The Ardumower has a 2-channel encoder with 5 pulses at one cycle of motor multiplied by gear ratio 1:212, resulting in 1060 encoder ticks per one full tire resolution.&lt;br /&gt;
&lt;br /&gt;
Wiring/pinout of motor encoder connector:&lt;br /&gt;
&lt;br /&gt;
 green  ---- GND&lt;br /&gt;
 brown  ---- VCC&lt;br /&gt;
 blue   ---- odometry1&lt;br /&gt;
 purple ---- odometry2&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
IMPORTANT: PCB v0.5/1.2 are missing pull-ups! You need to add them yourself:&lt;br /&gt;
&lt;br /&gt;
 odometry1 --- 4.7k --- 5v&lt;br /&gt;
 odometry2 --- 4.7k --- 5v&lt;br /&gt;
&lt;br /&gt;
= Signal of odometry encoders =&lt;br /&gt;
&amp;lt;gallery&amp;gt;&lt;br /&gt;
File: ardumower_odometry_encoder.jpg&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 Forward: pin1 makes LOW-&amp;gt;HIGH transition and pin2 = HIGH&lt;br /&gt;
 Reverse: pin1 makes LOW-&amp;gt;HIGH transition and pin2 = LOW&lt;br /&gt;
&lt;br /&gt;
= Do-It-Yourself encoders =&lt;br /&gt;
&amp;lt;gallery&amp;gt;&lt;br /&gt;
File: l50_odometry_sensor.jpg | Ambrogio L50: An encoder wheel of a computer mouse is glued to a slice. The screw of the wheel shaft is unscrewed, and the slice is added. Embedded in two Plexiglas pieces is a photo diode and photo transistor of a light barrier (e.g. LTH 301)&lt;br /&gt;
File: mower_photo_interrupter_right.JPG | Tianchen TC-G158 (right): A light barrier (e.g. LTH 301) is interrupted by a gear-weheel of the motor shaft. ).&lt;br /&gt;
File: Odometry_circuit.jpg | LTH301 circuit&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Circuit ==&lt;br /&gt;
&lt;br /&gt;
 VCC           pinArduino&lt;br /&gt;
 +--13 KOhm----+-------Collector  Emitter---GND&lt;br /&gt;
 +--380 Ohm------------Anode      Kathode---GND&lt;br /&gt;
&lt;br /&gt;
== Differential drive ==&lt;br /&gt;
By adding (integrating) Odometry speed, we can calculate distance and heading. &lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery&amp;gt; &lt;br /&gt;
File: differential_drive.png | Differential drive&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Distance per wheel:&lt;br /&gt;
 left_cm  = ticksLeft  / odometryTicksPerCm&lt;br /&gt;
 right_cm = ticksRight / odometryTicksPerCm&lt;br /&gt;
 &lt;br /&gt;
Heading:&lt;br /&gt;
 wheel_theta = (left_cm - right_cm) / odometryWheelBaseCm&lt;br /&gt;
 odometryTheta += wheel_theta&lt;br /&gt;
&lt;br /&gt;
Overall distance:&lt;br /&gt;
 avg_cm  = (left_cm + right_cm) / 2.0&lt;br /&gt;
 odometryX += avg_cm * sin(odometryTheta)&lt;br /&gt;
 odometryY += avg_cm * cos(odometryTheta)&lt;br /&gt;
&lt;br /&gt;
== Ground measurement error ==&lt;br /&gt;
By adding (integrating) Odometry speed, we can calculate distance and heading. However, as we are adding a small error each time (due to not exact physical ground measurement), distance and angle errors are increasing. This can be solved by [http://wiki.ardumower.de/index.php?title=Sensor_fusion sensor fusion].&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery&amp;gt;&lt;br /&gt;
File: odometry_plot.jpg | Odometry error&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= Регулятор скорости мотора (ПИД) =&lt;br /&gt;
Скорость двигателей регулируется с помощью программного ПИД-регулятора. Вы можете следить за качеством управления скорости через pfodApp (Plot-&amp;gt;Motor control):&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery&amp;gt;&lt;br /&gt;
  File: Odometry_motor_pid_controller.png&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= Видео =&lt;br /&gt;
Еще нет видео  (функционал в разработке)&lt;/div&gt;</summary>
		<author><name>Unlogic</name></author>	</entry>

	<entry>
		<id>https://wiki.ardumower.de/index.php?title=Odometry_ru&amp;diff=2705</id>
		<title>Odometry ru</title>
		<link rel="alternate" type="text/html" href="https://wiki.ardumower.de/index.php?title=Odometry_ru&amp;diff=2705"/>
				<updated>2015-08-23T13:07:01Z</updated>
		
		<summary type="html">&lt;p&gt;Unlogic: /* Video */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Abstract =&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery&amp;gt;&lt;br /&gt;
File: odometry.png &lt;br /&gt;
File: ardumower_odometry_sensor.png&lt;br /&gt;
File: ardumower_motor.jpg&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Latest Ardumower code requires motor encoders for odometry. Using odometry you can calculate the robot's speed and the short-term position of the robot. This works by counting the rotations of left and right wheel (motor encoders - required by latest Ardumower software).&lt;br /&gt;
&lt;br /&gt;
Currently, odometry is used:&lt;br /&gt;
* to ensure the robot left and right wheel are turning the same speed (in forward direction)&lt;br /&gt;
&lt;br /&gt;
= Encoder pinout (Ardumower motors) =&lt;br /&gt;
&lt;br /&gt;
The Ardumower has a 2-channel encoder with 5 pulses at one cycle of motor multiplied by gear ratio 1:212, resulting in 1060 encoder ticks per one full tire resolution.&lt;br /&gt;
&lt;br /&gt;
Wiring/pinout of motor encoder connector:&lt;br /&gt;
&lt;br /&gt;
 green  ---- GND&lt;br /&gt;
 brown  ---- VCC&lt;br /&gt;
 blue   ---- odometry1&lt;br /&gt;
 purple ---- odometry2&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
IMPORTANT: PCB v0.5/1.2 are missing pull-ups! You need to add them yourself:&lt;br /&gt;
&lt;br /&gt;
 odometry1 --- 4.7k --- 5v&lt;br /&gt;
 odometry2 --- 4.7k --- 5v&lt;br /&gt;
&lt;br /&gt;
= Signal of odometry encoders =&lt;br /&gt;
&amp;lt;gallery&amp;gt;&lt;br /&gt;
File: ardumower_odometry_encoder.jpg&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 Forward: pin1 makes LOW-&amp;gt;HIGH transition and pin2 = HIGH&lt;br /&gt;
 Reverse: pin1 makes LOW-&amp;gt;HIGH transition and pin2 = LOW&lt;br /&gt;
&lt;br /&gt;
= Do-It-Yourself encoders =&lt;br /&gt;
&amp;lt;gallery&amp;gt;&lt;br /&gt;
File: l50_odometry_sensor.jpg | Ambrogio L50: An encoder wheel of a computer mouse is glued to a slice. The screw of the wheel shaft is unscrewed, and the slice is added. Embedded in two Plexiglas pieces is a photo diode and photo transistor of a light barrier (e.g. LTH 301)&lt;br /&gt;
File: mower_photo_interrupter_right.JPG | Tianchen TC-G158 (right): A light barrier (e.g. LTH 301) is interrupted by a gear-weheel of the motor shaft. ).&lt;br /&gt;
File: Odometry_circuit.jpg | LTH301 circuit&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Circuit ==&lt;br /&gt;
&lt;br /&gt;
 VCC           pinArduino&lt;br /&gt;
 +--13 KOhm----+-------Collector  Emitter---GND&lt;br /&gt;
 +--380 Ohm------------Anode      Kathode---GND&lt;br /&gt;
&lt;br /&gt;
== Differential drive ==&lt;br /&gt;
By adding (integrating) Odometry speed, we can calculate distance and heading. &lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery&amp;gt; &lt;br /&gt;
File: differential_drive.png | Differential drive&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Distance per wheel:&lt;br /&gt;
 left_cm  = ticksLeft  / odometryTicksPerCm&lt;br /&gt;
 right_cm = ticksRight / odometryTicksPerCm&lt;br /&gt;
 &lt;br /&gt;
Heading:&lt;br /&gt;
 wheel_theta = (left_cm - right_cm) / odometryWheelBaseCm&lt;br /&gt;
 odometryTheta += wheel_theta&lt;br /&gt;
&lt;br /&gt;
Overall distance:&lt;br /&gt;
 avg_cm  = (left_cm + right_cm) / 2.0&lt;br /&gt;
 odometryX += avg_cm * sin(odometryTheta)&lt;br /&gt;
 odometryY += avg_cm * cos(odometryTheta)&lt;br /&gt;
&lt;br /&gt;
== Ground measurement error ==&lt;br /&gt;
By adding (integrating) Odometry speed, we can calculate distance and heading. However, as we are adding a small error each time (due to not exact physical ground measurement), distance and angle errors are increasing. This can be solved by [http://wiki.ardumower.de/index.php?title=Sensor_fusion sensor fusion].&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery&amp;gt;&lt;br /&gt;
File: odometry_plot.jpg | Odometry error&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= Motor controller (PID) =&lt;br /&gt;
The speed of the motors is controlled by a software PID controller. You can monitor the quality of the motor speed control via pfodApp (Plot-&amp;gt;Motor control):&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery&amp;gt;&lt;br /&gt;
  File: Odometry_motor_pid_controller.png&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= Видео =&lt;br /&gt;
Еще нет видео  (функционал в разработке)&lt;/div&gt;</summary>
		<author><name>Unlogic</name></author>	</entry>

	<entry>
		<id>https://wiki.ardumower.de/index.php?title=Russian_Version&amp;diff=2704</id>
		<title>Russian Version</title>
		<link rel="alternate" type="text/html" href="https://wiki.ardumower.de/index.php?title=Russian_Version&amp;diff=2704"/>
				<updated>2015-08-23T13:03:48Z</updated>
		
		<summary type="html">&lt;p&gt;Unlogic: /* Разделы Ardumower */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;__NOTOC__&lt;br /&gt;
&lt;br /&gt;
 -&amp;gt; [[Hauptseite|English version]]&lt;br /&gt;
 -&amp;gt; [[Deutsche Version]] (noch in Bearbeitung)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| border=0&lt;br /&gt;
 |&amp;lt;span style=&amp;quot;color:#cf7606; font-size:200%;&amp;quot;&amp;gt;'''Добро пожаловать на '''&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;lt;span style=&amp;quot;color:#005288; font-size:200%;&amp;quot;&amp;gt;'''Ardumower - робот-газонокосилка своими руками'''&amp;lt;/span&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;font-size:150%;&amp;quot;&amp;gt;Ardumower Вики, база знаний сообщества Ardumower&amp;lt;/span&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
[[Image:H7c785a1.png |100px|left|Ardumower Logo]][[Image:1000x500-ausbildung.jpg|thumb|180px|Image of the month]]&lt;br /&gt;
&lt;br /&gt;
[[Image:Yt-brand-standard-logo-95x40.png|thumb|180px|http://www.youtube.com/user/naneona/videos]]&lt;br /&gt;
Внимание! Страницы на русском являются вольным переводом английской версии. Русскоговорящих единомышленников прошу откликнуться на почтовый ящик ildar на рамблере.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Вы, наверное знаете форум Ardumower, самодельного робота-газонокосилки в Интернете. Теперь есть дополнительный сайт знаний Ardumower на основе Вики. Здесь вы найдете информацию, основы и советы о роботе-газонокосилке. Информация отсортирована по различным темам. С главной страницы вы можете перейти в интересующий Вас раздел. Мы используем MediaWiki.&amp;lt;p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
На этой вики, вы можете создавать и править страницы свободно. Свои первые правки можете попробовать на [[test|тестовой странице]]. Смотрите инструкции по работе с Вики [https://www.mediawiki.org/wiki/Help:Editing_pages/ru].&lt;br /&gt;
&lt;br /&gt;
Помогите нам улучшить эту Вики! Просто [http://wiki.ardumower.de/index.php?title=Spezial:Anmelden/signup зарегистрируйтесь] и начните редактирование сегодня...&lt;br /&gt;
&lt;br /&gt;
=Начало работы / Введение=&lt;br /&gt;
[[Image:Ardumower_overview.png|thumb|400px|Overview]]&lt;br /&gt;
Эти страницы помогут вам начать строить свой собственный робот-косилку:&lt;br /&gt;
*[[Getting started|Приступая к работе]] (внедрение и общие шаги)&lt;br /&gt;
*[[Arduino first steps|Arduino первые шаги]] (если вы прежде никогда не работали с Arduino: как загрузить скейтч на свой Arduino ...)&lt;br /&gt;
&lt;br /&gt;
=Разделы Ardumower=&lt;br /&gt;
По этим ссылкам Вы можете перейти в интересующий раздел:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;color:blue; background-color:#ffffcc;&amp;quot; cellpadding=&amp;quot;10&amp;quot;&lt;br /&gt;
!Сборка шасси&lt;br /&gt;
|[[Ardumower chassis ru|Шасси (перевод в процессе)]] &lt;br /&gt;
|-&lt;br /&gt;
!Исходный код, схемы, печатные платы&lt;br /&gt;
|[[Arduino first steps ru|Arduino первые шаги (перевод в процессе)]]&lt;br /&gt;
|[[Ardumower PCB ru|Печатная плата и прошивка (перевод в процессе)]]&lt;br /&gt;
|[[Arduino Due ru|Arduino Due (перевод в процессе)]]&lt;br /&gt;
|[[Troubleshooting ru|Устранение неполадок (перевод в процессе)]]&lt;br /&gt;
|-&lt;br /&gt;
!Двигатели&lt;br /&gt;
|[[Motor driver ru|Моторы и их драйверы (перевод в процессе)]]&lt;br /&gt;
|[[Relay_ru|Реле]]&lt;br /&gt;
|-&lt;br /&gt;
!Датчики&lt;br /&gt;
|[[Perimeter wire ru|Периметр (перевод в процессе)]]&lt;br /&gt;
|[[Ultrasonic_ru|Ультрасоник]]&lt;br /&gt;
|[[Hall sensor ru|Датчик Холла]]&lt;br /&gt;
|[[Lawn sensor ru|Датчик травы (перевод в процессе)]]&lt;br /&gt;
|[[Odometry ru|Датчик оборотов колеса (перевод в процессе)]]&lt;br /&gt;
|[[IMU ru|Гироскоп (перевод в процессе)]]&lt;br /&gt;
|[[Rain sensor_ru|Датчик дождя]]&lt;br /&gt;
|[[Dropsensor_ru|Датчик поднятия (перевод в процессе)]]&lt;br /&gt;
|-&lt;br /&gt;
!Питание&lt;br /&gt;
|[[Charging_ru|Зарядка]]&lt;br /&gt;
|-&lt;br /&gt;
!Беспроводные модули&lt;br /&gt;
|[[Model_RC_ru|Радиоуправление на джойстике]]&lt;br /&gt;
|[[Bluetooth_ru|Bluetooth и приложение для смартфонов]]&lt;br /&gt;
|[[GPS_ru|GPS]]&lt;br /&gt;
|-&lt;br /&gt;
!Другие модули&lt;br /&gt;
|[[Realtime clock ru|Часы реального времени]]&lt;br /&gt;
|-&lt;br /&gt;
!Архитектура программы, алгоритмы&lt;br /&gt;
|[http://www.grauonline.de/alexwww/ardumower/sim/mower.html Симулятор Ardumower]&lt;br /&gt;
|[[Ardumower software design ru|Состояния робота]]&lt;br /&gt;
|[[Sensor fusion ru|Обработка сигналов датчиков (перевод в процессе)]]&lt;br /&gt;
|[[PID control ru|ПИД-регулятор]]&lt;br /&gt;
|[[Kalman ru|Расширенный фильтр Калмана (EKF) (перевод в процессе)]]&lt;br /&gt;
|-&lt;br /&gt;
!Программирование Arduino&lt;br /&gt;
|[[Arduino crash course ru|Arduino ускоренный курс (перевод в процессе)]]&lt;br /&gt;
|[[Arduino code techniques ru|Методики программирования Arduino (перевод в процессе)]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=Проекты роботов-газонокосилок=&lt;br /&gt;
Расскажите о вашем проекте робота-косилки на новую Вики-страницу&lt;br /&gt;
* [[Ardumower Chassis 'mountain mod'|Горная модификация шасси]]&lt;br /&gt;
* [[Ardumower Mini|Ardumower Мини]]&lt;br /&gt;
* [[Tracked Mower|Шасси на гусеничном ходу]]&lt;br /&gt;
* ...&lt;br /&gt;
* ...&lt;br /&gt;
&lt;br /&gt;
=Улучшение газонокосилки Ardumower=&lt;br /&gt;
Расскажите о расширениях или улучшениях вашего робота (оптические датчики, компьютерное зрение, инфракрасные датчики местоположения, звук, навигация, беспроводная связь, или любое иное дополнение) на новую Вики-страницу&lt;br /&gt;
* Речевой синтезатор [[Sound module]]&lt;br /&gt;
* Будущая [[Ardumower future PCB|печатная плата]] Ardumower&lt;br /&gt;
* ...&lt;br /&gt;
* ...&lt;br /&gt;
&lt;br /&gt;
=Справка Wiki=&lt;br /&gt;
* Как редактировать и добавлять страницы: [[Wiki help]]&lt;br /&gt;
* Попробовать свои силы в редактировании: [[test]]&lt;br /&gt;
&lt;br /&gt;
=Ссылки=&lt;br /&gt;
[http://www.ardumower.de/index.php/de Официальная страница и форум Ardumower]&lt;br /&gt;
[https://www.marotronics.de/ Магазин Ardumower]&lt;/div&gt;</summary>
		<author><name>Unlogic</name></author>	</entry>

	<entry>
		<id>https://wiki.ardumower.de/index.php?title=Hall_sensor_ru&amp;diff=2703</id>
		<title>Hall sensor ru</title>
		<link rel="alternate" type="text/html" href="https://wiki.ardumower.de/index.php?title=Hall_sensor_ru&amp;diff=2703"/>
				<updated>2015-08-23T13:03:20Z</updated>
		
		<summary type="html">&lt;p&gt;Unlogic: /* Датчик Холла */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Датчик Холла == &lt;br /&gt;
&lt;br /&gt;
[[File:hallsensor.jpg|caption]]&lt;br /&gt;
&lt;br /&gt;
Лезвия имеют лучшую производительность при определенной скорости (например 3300 об/мин).&lt;br /&gt;
&lt;br /&gt;
Если лезвия вращаются на максимальной скорости (независимо от высокой или низкой травы), то это никак не способствует экономии заряда батареи, да и робот слишком шумный.&lt;br /&gt;
&lt;br /&gt;
Для регулировки частоты вращения используется ШИМ: по высокой траве напряжение увеличивается, и на низкой траве напряжение уменьшается.&lt;br /&gt;
&lt;br /&gt;
Таким образом, необходим датчик вращения для лезвий, например датчика Холла (A1302 KUA-T) и маленький неодимовый магнит на валу двигателя.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery&amp;gt;&lt;br /&gt;
File: motor_hallsensor.jpg&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Видео == &lt;br /&gt;
&lt;br /&gt;
[http://youtu.be/um5jXMPC6IM Демонстрация]&lt;br /&gt;
&lt;br /&gt;
== Подключение==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 Датчик Холла A1302 +5V    ----  +5V&lt;br /&gt;
 Датчик Холла A1302 GND    ----  GND&lt;br /&gt;
 Датчик Холла A1302 Signal ----  Arduino вывод 18&lt;/div&gt;</summary>
		<author><name>Unlogic</name></author>	</entry>

	<entry>
		<id>https://wiki.ardumower.de/index.php?title=Hall_sensor_ru&amp;diff=2702</id>
		<title>Hall sensor ru</title>
		<link rel="alternate" type="text/html" href="https://wiki.ardumower.de/index.php?title=Hall_sensor_ru&amp;diff=2702"/>
				<updated>2015-08-23T13:02:38Z</updated>
		
		<summary type="html">&lt;p&gt;Unlogic: /* Видео */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Датчик Холла == &lt;br /&gt;
&lt;br /&gt;
[[File:hallsensor.jpg|caption]]&lt;br /&gt;
&lt;br /&gt;
Лезвия имеют лучшую производительность при определенной скорости (например 3300 об/мин).&lt;br /&gt;
Если лезвия вращаются на максимальной скорости (независимо от высокой или низкой травы), то это никак не способствует экономии заряда батареи, да и робот слишком шумный.&lt;br /&gt;
Для регулировки частоты вращения используется ШИМ: по высокой траве напряжение увеличивается, и на низкой траве напряжение уменьшается.&lt;br /&gt;
Таким образом, необходим датчик вращения для лезвий, например датчика Холла (A1302 KUA-T) и маленький неодимовый магнит на валу двигателя.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery&amp;gt;&lt;br /&gt;
File: motor_hallsensor.jpg&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Видео == &lt;br /&gt;
&lt;br /&gt;
[http://youtu.be/um5jXMPC6IM Демонстрация]&lt;br /&gt;
&lt;br /&gt;
== Подключение==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 Датчик Холла A1302 +5V    ----  +5V&lt;br /&gt;
 Датчик Холла A1302 GND    ----  GND&lt;br /&gt;
 Датчик Холла A1302 Signal ----  Arduino вывод 18&lt;/div&gt;</summary>
		<author><name>Unlogic</name></author>	</entry>

	<entry>
		<id>https://wiki.ardumower.de/index.php?title=Hall_sensor_ru&amp;diff=2701</id>
		<title>Hall sensor ru</title>
		<link rel="alternate" type="text/html" href="https://wiki.ardumower.de/index.php?title=Hall_sensor_ru&amp;diff=2701"/>
				<updated>2015-08-23T13:02:29Z</updated>
		
		<summary type="html">&lt;p&gt;Unlogic: /* Видео */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Датчик Холла == &lt;br /&gt;
&lt;br /&gt;
[[File:hallsensor.jpg|caption]]&lt;br /&gt;
&lt;br /&gt;
Лезвия имеют лучшую производительность при определенной скорости (например 3300 об/мин).&lt;br /&gt;
Если лезвия вращаются на максимальной скорости (независимо от высокой или низкой травы), то это никак не способствует экономии заряда батареи, да и робот слишком шумный.&lt;br /&gt;
Для регулировки частоты вращения используется ШИМ: по высокой траве напряжение увеличивается, и на низкой траве напряжение уменьшается.&lt;br /&gt;
Таким образом, необходим датчик вращения для лезвий, например датчика Холла (A1302 KUA-T) и маленький неодимовый магнит на валу двигателя.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery&amp;gt;&lt;br /&gt;
File: motor_hallsensor.jpg&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Видео == &lt;br /&gt;
&lt;br /&gt;
[http://youtu.be/um5jXMPC6IM |Демонстрация]&lt;br /&gt;
&lt;br /&gt;
== Подключение==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 Датчик Холла A1302 +5V    ----  +5V&lt;br /&gt;
 Датчик Холла A1302 GND    ----  GND&lt;br /&gt;
 Датчик Холла A1302 Signal ----  Arduino вывод 18&lt;/div&gt;</summary>
		<author><name>Unlogic</name></author>	</entry>

	</feed>