Important changes to repositories hosted on mbed.com
Mbed hosted mercurial repositories are deprecated and are due to be permanently deleted in July 2026.
To keep a copy of this software download the repository Zip archive or clone locally using Mercurial.
It is also possible to export all your personal repositories from the account settings page.
Capteurs/Infra.cpp@0:1cfd66c3a181, 2019-05-22 (annotated)
- Committer:
- xav_jann1
- Date:
- Wed May 22 16:54:27 2019 +0000
- Revision:
- 0:1cfd66c3a181
Premiere version
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
xav_jann1 | 0:1cfd66c3a181 | 1 | #include "Infra.h" |
xav_jann1 | 0:1cfd66c3a181 | 2 | #include <math.h> |
xav_jann1 | 0:1cfd66c3a181 | 3 | |
xav_jann1 | 0:1cfd66c3a181 | 4 | // Constructeur: |
xav_jann1 | 0:1cfd66c3a181 | 5 | Infra::Infra(PinName pin) |
xav_jann1 | 0:1cfd66c3a181 | 6 | : m_analog(pin), |
xav_jann1 | 0:1cfd66c3a181 | 7 | m_isOn(true), |
xav_jann1 | 0:1cfd66c3a181 | 8 | m_distdetect(30.0f), |
xav_jann1 | 0:1cfd66c3a181 | 9 | m_detect(false) {} |
xav_jann1 | 0:1cfd66c3a181 | 10 | |
xav_jann1 | 0:1cfd66c3a181 | 11 | // Mesure: |
xav_jann1 | 0:1cfd66c3a181 | 12 | bool Infra::mesure() { |
xav_jann1 | 0:1cfd66c3a181 | 13 | // Mesure: |
xav_jann1 | 0:1cfd66c3a181 | 14 | m_voltage = m_analog.read(); |
xav_jann1 | 0:1cfd66c3a181 | 15 | m_voltage = (float)m_voltage * (float)3.3; |
xav_jann1 | 0:1cfd66c3a181 | 16 | m_distance = (float)29.988 * powf(m_voltage, -1.173) / 2.0f; |
xav_jann1 | 0:1cfd66c3a181 | 17 | |
xav_jann1 | 0:1cfd66c3a181 | 18 | // Détection: |
xav_jann1 | 0:1cfd66c3a181 | 19 | if (m_isOn) m_detect = m_distance < m_distdetect; |
xav_jann1 | 0:1cfd66c3a181 | 20 | else m_detect = false; |
xav_jann1 | 0:1cfd66c3a181 | 21 | |
xav_jann1 | 0:1cfd66c3a181 | 22 | return m_detect; |
xav_jann1 | 0:1cfd66c3a181 | 23 | } |
xav_jann1 | 0:1cfd66c3a181 | 24 | |
xav_jann1 | 0:1cfd66c3a181 | 25 | // Setters: |
xav_jann1 | 0:1cfd66c3a181 | 26 | void Infra::setDistDetect(float detect) { m_distdetect = detect; } |
xav_jann1 | 0:1cfd66c3a181 | 27 | void Infra::on() { m_isOn = true; } |
xav_jann1 | 0:1cfd66c3a181 | 28 | void Infra::off() { m_isOn = false; } |
xav_jann1 | 0:1cfd66c3a181 | 29 | |
xav_jann1 | 0:1cfd66c3a181 | 30 | // Getters: |
xav_jann1 | 0:1cfd66c3a181 | 31 | float Infra::getDistance() { return m_distance; } |
xav_jann1 | 0:1cfd66c3a181 | 32 | float Infra::getVoltage() { return m_voltage; } |
xav_jann1 | 0:1cfd66c3a181 | 33 | float Infra::getDistdetect() { return m_distdetect; } |