programme de tournesol photovoltaique pour le cours d'interface

Dependencies:   BSP_DISCO_F746NG

Committer:
legrandpaul
Date:
Mon Jun 21 16:19:41 2021 +0000
Revision:
0:6d4f8bd2994a
programme d'interface

Who changed what in which revision?

UserRevisionLine numberNew contents of line
legrandpaul 0:6d4f8bd2994a 1 /*
legrandpaul 0:6d4f8bd2994a 2 * Library for the IUT de Cachan's orientable solar pannel
legrandpaul 0:6d4f8bd2994a 3 *
legrandpaul 0:6d4f8bd2994a 4 * Works with DISCO-F7446NG
legrandpaul 0:6d4f8bd2994a 5 *
legrandpaul 0:6d4f8bd2994a 6 * Copyright (C) Paul Legrand
legrandpaul 0:6d4f8bd2994a 7 *
legrandpaul 0:6d4f8bd2994a 8 * Permission is hereby granted, free of charge, to any person obtaining a copy
legrandpaul 0:6d4f8bd2994a 9 * of this software and associated documnetation files (the "Software"), to deal
legrandpaul 0:6d4f8bd2994a 10 * in the Software without restriction, including without limitation the rights
legrandpaul 0:6d4f8bd2994a 11 * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
legrandpaul 0:6d4f8bd2994a 12 * copies of the Software, and to permit persons to whom the Software is
legrandpaul 0:6d4f8bd2994a 13 * furished to do so, subject to the following conditions:
legrandpaul 0:6d4f8bd2994a 14 *
legrandpaul 0:6d4f8bd2994a 15 * The above copyright notice and this permission notice shall be included in
legrandpaul 0:6d4f8bd2994a 16 * all copies or substantial portions of the Software.
legrandpaul 0:6d4f8bd2994a 17 *
legrandpaul 0:6d4f8bd2994a 18 * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
legrandpaul 0:6d4f8bd2994a 19 * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
legrandpaul 0:6d4f8bd2994a 20 * FITNESS OR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
legrandpaul 0:6d4f8bd2994a 21 * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
legrandpaul 0:6d4f8bd2994a 22 * LIABILITY WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
legrandpaul 0:6d4f8bd2994a 23 * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
legrandpaul 0:6d4f8bd2994a 24 * THE SOFTWARE.
legrandpaul 0:6d4f8bd2994a 25 */
legrandpaul 0:6d4f8bd2994a 26
legrandpaul 0:6d4f8bd2994a 27 #ifndef _SolarPannel_H__
legrandpaul 0:6d4f8bd2994a 28 #define _SolarPannel_H__
legrandpaul 0:6d4f8bd2994a 29
legrandpaul 0:6d4f8bd2994a 30 #include "mbed.h"
legrandpaul 0:6d4f8bd2994a 31
legrandpaul 0:6d4f8bd2994a 32 #define PWM_SPEED 0.2
legrandpaul 0:6d4f8bd2994a 33 #define LEFT 0
legrandpaul 0:6d4f8bd2994a 34 #define RIGHT 1
legrandpaul 0:6d4f8bd2994a 35
legrandpaul 0:6d4f8bd2994a 36
legrandpaul 0:6d4f8bd2994a 37
legrandpaul 0:6d4f8bd2994a 38 class SOLAR_PANNEL
legrandpaul 0:6d4f8bd2994a 39 {
legrandpaul 0:6d4f8bd2994a 40
legrandpaul 0:6d4f8bd2994a 41 public:
legrandpaul 0:6d4f8bd2994a 42 /*-----------------I/O declaration-----------------*/
legrandpaul 0:6d4f8bd2994a 43 SOLAR_PANNEL()
legrandpaul 0:6d4f8bd2994a 44 {
legrandpaul 0:6d4f8bd2994a 45 ErrorFlag = new InterruptIn(PF_8);
legrandpaul 0:6d4f8bd2994a 46 codeurA = new InterruptIn(PF_10);
legrandpaul 0:6d4f8bd2994a 47 codeurB = new InterruptIn(PC_7);
legrandpaul 0:6d4f8bd2994a 48 capteur_G = new AnalogIn(PF_7);
legrandpaul 0:6d4f8bd2994a 49 capteur_D = new AnalogIn(PF_6);
legrandpaul 0:6d4f8bd2994a 50
legrandpaul 0:6d4f8bd2994a 51 pwm1 = new PwmOut(PA_0);
legrandpaul 0:6d4f8bd2994a 52 pwm2 = new PwmOut(PC_6);
legrandpaul 0:6d4f8bd2994a 53 }
legrandpaul 0:6d4f8bd2994a 54
legrandpaul 0:6d4f8bd2994a 55 InterruptIn * ErrorFlag;
legrandpaul 0:6d4f8bd2994a 56 InterruptIn * codeurB;
legrandpaul 0:6d4f8bd2994a 57 InterruptIn * codeurA;
legrandpaul 0:6d4f8bd2994a 58
legrandpaul 0:6d4f8bd2994a 59 AnalogIn * capteur_G;
legrandpaul 0:6d4f8bd2994a 60 AnalogIn * capteur_D;
legrandpaul 0:6d4f8bd2994a 61
legrandpaul 0:6d4f8bd2994a 62 PwmOut * pwm1;// (PF_6);
legrandpaul 0:6d4f8bd2994a 63 PwmOut * pwm2;// (PC_7);
legrandpaul 0:6d4f8bd2994a 64
legrandpaul 0:6d4f8bd2994a 65
legrandpaul 0:6d4f8bd2994a 66 void rotate (bool dir, double vit);
legrandpaul 0:6d4f8bd2994a 67 void stop (void);
legrandpaul 0:6d4f8bd2994a 68 double getLsensor (void);
legrandpaul 0:6d4f8bd2994a 69 double getRsensor (void);
legrandpaul 0:6d4f8bd2994a 70 double getDelta (void);
legrandpaul 0:6d4f8bd2994a 71
legrandpaul 0:6d4f8bd2994a 72 private :
legrandpaul 0:6d4f8bd2994a 73
legrandpaul 0:6d4f8bd2994a 74 void fctErrorFlag (bool flag);
legrandpaul 0:6d4f8bd2994a 75 void fctCodeurA(int *angle);
legrandpaul 0:6d4f8bd2994a 76 void fctCodeurB (int *angle);
legrandpaul 0:6d4f8bd2994a 77
legrandpaul 0:6d4f8bd2994a 78 };
legrandpaul 0:6d4f8bd2994a 79
legrandpaul 0:6d4f8bd2994a 80 #endif // _SolarPannel_H__ //